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

将此字段定义为字符,但在 Integer 中进行验证。这应该是快速的解决方案

于 2012-07-10T07:00:23.393 回答