1

-20と+20の範囲の値を持つオプションがあるかもしれない選択ボックスがあります:

class MyForm(forms.ModelForm):
    class Meta:
        i0=xrange(-20, 20, 0.25)
        c = tuple(("%g" % x , "%g" % x) for x in i0)
        model = MyModel
        widgets = {
            'my_field' : forms.Select(choices=c),

        }

出力は次のとおりです。

<select>
    <option value="-20">-20</option>
    <option value="-19.75">-19.75</option>
    <option value="-19.5">-19.5</option>
    <option value="-19.25">-19.25</option>
    <option value="-19">-19</option>
    .
    .
    .
    <option value="19">19</option>
</select>

しかし、正の数字で「+」記号が必要です。i0=xrange(-20, +20, 0.25)問題を解決していません。オプションの正の数字に「+」記号を追加するにはどうすればよいですか?

前もって感謝します

4

2 に答える 2

2

Pythonを搭載したマシンにアクセスできないと、テストできませんが、次のことができるはずです。

  c = tuple(("%g" % x , "%+g" % x) for x in i0)

http://docs.python.org/release/3.0/library/stdtypes.html#old-string-formatting-operations

以前のPythonバージョンでも機能するはずです

編集:-+ゼロ値からを削除するには:

 c = tuple(("%g" % x , "%+g" % x) for x in i0 if x != 0 else ("0", "0"))
于 2012-07-10T07:03:14.223 に答える
0

このフィールドを文字として定義しますが、整数で検証を行います。これは速い解決策でなければなりません

于 2012-07-10T07:00:23.393 に答える