2012-07-10 77 views
1

我有可能在-20價值觀和+20範圍內選擇一個選擇框:'+' 在Django形式

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)沒有解決問題。我如何在選項中加正號的'+'符號?

在此先感謝

回答

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")) 
+0

我以前試過這個,但是這個加+號爲0.謝謝 – TheNone 2012-07-10 07:07:32

+0

@TheNone我會說這是預期的。你可以特別指出「0」,所以它沒有。 *編輯: - 更新後的例子* – 2012-07-10 07:13:23

+0

你是對的。謝謝詹姆斯 – TheNone 2012-07-10 07:15:44

0

將此字段定義爲字符,但在整數中進行驗證。這應該是快速的解決方案