特定主键django表单的外键

时间:2016-08-26 16:28:46

标签: python ajax django django-forms

我有班级公司,司机和汽车

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可能的技巧。但我不知道它是如何实现的

1 个答案:

答案 0 :(得分: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