django模型Charfield
如果我想要一个只有一个数字的CharField,这是写模型的方法吗django模型Charfield,django,django-models,Django,Django Models,如果我想要一个只有一个数字的CharField,这是写模型的方法吗 variable = model.CharField(max_length=1) 或者,如果您只有一个字符,那么它是一个不同的字段 谢谢 如果只使用一个数字(整数) 您可以查看: 正整数域或小整数域 variable = model.CharField(max_length=1) 这很好。但正如@所指出的,用选择来收紧它可能是一个好主意 CHOICES = (('1', '1'), ..., ('10', '10')) #
variable = model.CharField(max_length=1)
或者,如果您只有一个字符,那么它是一个不同的字段
谢谢 如果只使用一个数字(整数) 您可以查看:
正整数域或小整数域
variable = model.CharField(max_length=1)
这很好。但正如@所指出的,用选择来收紧它可能是一个好主意
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)
如果您想避免为选择字段生成可怕的下拉选择小部件,可以这样做 型号:
variable = model.CharField(max_length=1)
表格:
使用IntegerField和S.Lott显示的clean方法检查0到10之间的值如果它将包含一位数,那么Integer可能会更好?或是卡菲尔德choices@Ilian伊里耶夫:如果你想添加这个作为答案,我会删除我的。@llian:对。对不起,这对我来说无关紧要。我想Integer也会很酷。@S.Lott-因为我是一个视力下降的草率白痴。更正。@S.Lott-请参阅我的第一条评论。再次编辑,谢谢。如果您希望在多个字段上有多个选择,该怎么办?variable1=选择集variable2=选择集等。。如何实现?非常有趣。谢谢你!
def clean_variable(self):
data = self.cleaned_data['variable']
if data not in string.digits:
raise forms.ValidationError("Not a digit")
return data