ModelForm和字段生成

时间:2012-06-25 22:03:01

标签: django

在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)

如何在表单中定义下拉菜单?

2 个答案:

答案 0 :(得分:1)

您正在寻找forms.ModelChoiceField

答案 1 :(得分:1)

你的意思是这样的吗?:

contact_type = forms.ModelChoiceField(queryset=ContactType.objects.all())

关于Django documentation

ModelChoiceField的更多信息