我认为,如果我100%确定使用ChoiceField
,那么仅在forms
中定义form
是最佳解决方案,对吗?
我的意思是,我不必这样做:
models.py
class Payment(TimeStampedModel):
PAY_METHOD_CHOICES = (
('card', '카드'),
('cash', '무통장입금'),
)
pay_method = models.CharField(
max_length=10,
choices=PAY_METHOD_CHOICES
)
forms.py
class PaymentForm(forms.ModelForm):
PAY_METHOD_CHOICES = (
('card', '카드'),
('cash', '무통장입금'),
)
pay_method = forms.ChoiceField(
choices=PAY_METHOD_CHOICES
)
class Meta:
model = Payment
这是冗余代码,不是吗?
从这个意义上讲,我无法理解为什么在choices
字段中使用models
...
什么时候使用?哪种情况?
由于
答案 0 :(得分:0)
与文件状态https://docs.djangoproject.com/en/1.10/ref/models/fields/#choices
一样如果给出了这个,默认表单小部件将是一个带有这些选项的选择框,而不是标准文本字段。
所以基本上choices
param用于在你做
class PaymentForm(forms.ModelForm):
class Meta:
model = Payment
fields = '__all__'
它将根据您的模型设置表单字段。