我试图使用表单
创建一个ModelChoiceFieldclass Person(forms.Form):
person = forms.ModelChoiceField(queryset=Person.objects.filter(is_active=True).order_by('id'), required=False)
age = forms.IntegerField(min_value=18, max_value=99, required=False)
以html输出的形式返回
<option value="1">Person object</option>
现在我想在加载页面时按name
或id
显示ModelChoiceField的默认值。例如:
<option value="7">David</option>
如果用户不想要,可以选择另一个。我怎么能这样做?
答案 0 :(得分:2)
首先,您需要更改__unicode__
方法(如果在python3上,则为__str__
),这样它将返回人物对象的名称https://docs.djangoproject.com/en/1.9/ref/models/instances/#str
class Person:
... # your fields
def __unicode__(self):
return self.name
您需要为表单字段https://docs.djangoproject.com/en/1.9/ref/models/fields/#default
提供默认值person = forms.ModelChoiceField(queryset=Person.objects.filter(is_active=True).order_by('id'), required=False, default=Person.objects.get(id=7))