我有两个型号如下:Django - 将选择字段限制为外部表的查询集?
System_Contact
first_name
last_name
isOwner = CharField ('Y'/'N')
isMainContact = CharField ('Y'/'N')
System
mainContact = ForeignKey(System_Contact)
owner = ForeignKey(System_Contact)
billTo = ForeignKey(System_Contact)
所以,当我显示一个网页System
形式,用户可以选择从下拉菜单中mainContact
owner
和billTo
联系人保存到System
模型。不过,我想过滤的System
形式选择字段,以便他们都是这样的:
mainContact Select box: -- only show System_Contacts that have isMainContact = 'Y'
owner Select Box: -- only show Syste_Contacts that have isOwner = 'Y'
因为它是现在,我知道如何通过过滤查询集来限制一个选择框,但我不知道如何过滤相关的外键查询集。由于mainContact
和owner
领域外键,我需要过滤外部表(System_Contact
),不表上的形式建立(System
)
我知道如何过滤正常的,非外键类型选择框如下:
form.fields["some_field"].queryset = Some_Model.objects.filter(some_field="Foo")
我该如何“扩展”这个以便过滤外部表?
这是我想目前,没有成功:
form.fields["mainContact"].queryset = System_Contact.objects.filter(isMainContact = 'Y')
感谢