2010-08-24 81 views
0

如果我想要一個CharField只有一個數字,這是寫的模型Django的模型Charfield

variable = model.CharField(max_length=1) 

的方式或者如果你只有一個字符是一個目前存在的領域呢?

謝謝!

+1

如果將包含個位數也許整數會更好?或cahrfield的選擇 – 2010-08-24 09:54:45

+0

@Ilian Iliev:如果你想添加這個答案,我會刪除我的。 – 2010-08-24 10:03:32

+0

@llian:對。對不起,這對我無關緊要。我猜Integer會很酷。 – MacPython 2010-08-24 10:42:13

回答

0

爲選擇字段生成的小部件,您可以執行此操作。

型號:

variable = model.CharField(max_length=1) 

形式:

def clean_variable(self): 
    data = self.cleaned_data['variable'] 
    if data not in string.digits: 
     raise forms.ValidationError("Not a digit") 
    return data 
+0

非常有趣。感謝那! – MacPython 2010-08-24 10:40:24

0

如果只有一個數字(整數)被使用,

你可以看看:
PositiveSmallIntegerField或SmallIntegerField

0
variable = model.CharField(max_length=1) 

這是完全正常的。但正如@Ilian Iliev指出這可能是一個好主意,它與選擇收緊

CHOICES = (('1', '1'), ..., ('10', '10')) # Simplified; you may want to add more, auto generate this list etc. 
variable = model.CharField(max_length=1, choices=CHOICES) 

如果你想避免可怕的下拉選擇,您也可以切換到一個整數字段

CHOICES = ((1, '1'), ..., (10, '10')) 
variable = model.PositiveIntegerField(choices=CHOICES) 
+0

@ S.洛特 - 因爲我是一個狡猾的白癡,眼睛失明。糾正。 – 2010-08-24 10:11:12

+0

@ S.Lott - 查看我的第一條評論。再次編輯。 – 2010-08-24 10:17:57

+0

謝謝。如果想要在多個字段上有多個選項,該怎麼辦? 變量1 =組選擇 變量2 =組選擇 等。 如何實現? – MacPython 2010-08-24 10:39:42

0

使用IntegerField和清潔方法是美國洛特表示,檢查是值介於0與10