2016-08-26 84 views
1

我有類公司,司機和汽車外鍵形成

class Company(models.Model): 
title = models.CharField(max_length=256) 
... 

Class Car(models.Model): 
... 
company = ForeignKey('Company')  

class Driver(models.Model): 
... 
company = ForeignKey('Company') 
company_car = OneToOneField('Car') 

我也有GenericView用於創建和更新驅動程序,通用的形式。

我需要一個窗體,當用戶選擇公司時,company_car下拉列表只包含該公司的外鍵汽車對象。我知道關於object_set的功能,並且這個技巧可以通過AJAX實現。但我不知道它是如何實現的

回答

0

在您的表單字段中,您可以爲ModelChoiceField指定一個查詢集。你沒有給你的形式,但它可能是這個樣子:

class MyForm(ModelForm): 
    def __init__(self, *args, **kwargs): 
     self.fields['car'] = ModelChoiceField(
      queryset = Car.objects.filter(company=company) 
     ) 

文檔是在這裏:https://docs.djangoproject.com/en/dev/ref/forms/fields/#modelchoicefield

+0

你能寫這個例子我的情況?我不清楚 –

+0

我已經編輯了我的答案,但文檔清晰。 –

+0

thx,但我現在的問題和以前的解決方案的變體是我有一個錯誤:'MyForm'對象沒有屬性'公司' –