我制作了一个表单,其中包含如下字段:
sex = forms.ChoiceField(choices= SEX)
其中:
SEX = (
('F','Female'),
('M','Male'),
('U','Unsure'),
)
现在我想知道该如何最好地定义模型中的性场?我知道可以这样做:
class UserProfile(models.Model):
user = models.ForeignKey('User')
sex = models.CharField(max_length=10)
但难道没有比查菲尔德更好的选择吗
2条答案
按热度按时间uz75evzq1#
您已经将选项设置为字符串,因此它在模型中应该是
CharField(max_length=1, choices=SEX)
。然后,您可以使用ModelForm,而不是在单独的表单中重复所有逻辑。例如:ee7vknir2#
自 Django 4月4日起
现在有一个更合适的方法来做这件事。看看吧。基本上,你需要创建一个枚举类,就像
旧答案
我更喜欢这种方式,它更容易在代码中引用选项。