Django填写了ForeignKey的选择

时间:2014-02-20 03:51:24

标签: python django django-models django-forms foreign-keys

在下面的代码中,我试图让所有者表单带有一个下拉菜单,其中包含来自Car模型的汽车品牌作为选择。我确实得到了下拉菜单,但每个元素都列为“Car object”,而不是品牌。如何将Car车型中的品牌带入菜单?感谢。

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 个答案:

答案 0 :(得分:2)

在模型定义中添加__unicode__函数。

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

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

这样您就可以控制要显示的内容

答案 1 :(得分:0)

非常感谢分享这个,它帮助了我!在Django 1.8中,尝试: brand = models.ForeignKey(Car)

不要将car_放在外键前面