2010-08-24 92 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