ForeignKey创建的ChoiceField的选定值不会以表格形式显示

时间:2014-03-12 18:46:49

标签: django django-forms

背景

我有一个模特

class Contact(models.Model):
       permanent_state      = models.ForeignKey(State)

在form.py

class ContactForm(forms.ModelForm):
    class Meta:
        model = Contact

在view.py

main(request):
     contact = Contact.objects.values().get(employee_id = emp) 
     print contact
     form  = ContactForm(initial = contact)
     print form
     return render(request,"dashboard/main.html",{  'form' : form})

问题:表单生成一个下拉选择的ever_state的html标签但是没有显示state.instead它显示“------”

打印输出:

{ 'permanent_state_id': 2}



<tr><th><label for="id_permanent_state">Permanent state:</label></th><td><select id="id_permanent_state" name="permanent_state">
<option value="" selected="selected">---------</option>
<option value="1">Bengal</option>
<option value="2">Uttar Pradesh</option>
<option value="3">Tripura</option>
<option value="4">Tamil Nadu</option>
<option value="5">Sikkim</option>

但是如果我打印dict联系人,它会给我一个permanent_state值为2。 在显示Uttar Pradesh的django管理员应用中,所选值是正确的

请帮助

1 个答案:

答案 0 :(得分:1)

请改为尝试:

contact = Contact.objects.get(employee_id = emp) 
#Note that get throws an error if get() does not return a single value

form  = ContactForm(instance = contact)

相关documentation here