在forms.py中使用ModelForm时,可以节省大量时间,因为不需要在表单中重写整个字段。
class ContactsForm(ModelForm):
class Meta:
model = Contact
取一个forms.Form需要再次手动定义所有字段。由于更多的控制,有些人更喜欢这种方法。
虽然很多是直截了当的:
models.CharField("First Name",max_length=30, blank=True)
变为
forms.CharField(label = _(u'First Name'), max_length=30, blank=True)
和models.TextField(blank=True)
变为forms.TextArea(blank=True)
等......
对于我来说,如何以形式翻译一个字段对我来说有点神秘,例如:
models.ForeignKey(ContactType)
如何在表单中定义下拉菜单?
答案 0 :(得分:1)
您正在寻找forms.ModelChoiceField
答案 1 :(得分:1)
你的意思是这样的吗?:
contact_type = forms.ModelChoiceField(queryset=ContactType.objects.all())
关于Django documentation
的ModelChoiceField
的更多信息