2014-02-20 90 views
0

在下面的代碼中,我試圖讓所有者形成一個包含汽車品牌作爲選項的下拉菜單。我確實得到了下拉菜單,但每個元素都列爲「汽車物體」,而不是品牌。我如何從汽車模型中的品牌進入菜單?謝謝。Django從ForeignKey填充選項

models.py

from django.db import models 

class Car(models.Model): 
    brand = models.CharField(max_length=20) 

class Owner(models.Model): 
    name = models.CharField(max_length=20) 
    car_brand = models.ForeignKey(Car) 

forms.py

from django.forms import ModelForm, ModelChoiceField 
from app.models import Owner 

class OwnerForm(ModelForm): 
    car_brand = ModelChoiceField(queryset=Car.objects.all()) 

class Meta(): 
    model = Owner 

回答

2

添加__unicode__函數模型的定義。

class Car(models.Model): 
    brand = models.CharField(max_length=20) 

    def __unicode__(self): 
     return u'%s' % (self.brand) 

這樣,您就可以控制要顯示的內容

0

非常感謝分享這個,它幫助我!在Django 1.8,嘗試: 品牌= models.ForeignKey(汽車)

不要把car_外鍵