Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django模型Charfield_Django_Django Models - Fatal编程技术网

django模型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')) #

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

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