django模型Charfield

时间:2010-08-24 09:44:58

标签: django django-models

如果我想要一个只有一位数字的CharField,这就是编写模型的方法

variable = model.CharField(max_length=1)

或者,如果您只有一个Char,那么它是一个不同的字段?

谢谢!

4 个答案:

答案 0 :(得分:0)

如果只使用一个数字(整数),

你可以看看:
PositiveSmallIntegerField或SmallIntegerField

答案 1 :(得分: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)

答案 2 :(得分: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

答案 3 :(得分:0)

使用IntegerField和S.Lott显示的clean方法检查0到10之间的值