如果我想要一个只有一位数字的CharField,这就是编写模型的方法
variable = model.CharField(max_length=1)
或者,如果您只有一个Char,那么它是一个不同的字段?
谢谢!
答案 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之间的值