2014-02-20 4 views
0

В следующем коде я пытаюсь создать форму «Владелец» с раскрывающимся меню, в котором представлены автомобильные бренды модели автомобиля. Я получаю раскрывающееся меню, но элементы, перечисленные как «Автомобиль», каждый, а не бренды. Как мне получить бренды из модели Car в меню? Благодарю.Django populate choice from 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)

Не положите car_ перед внешним ключом