我有兩個型號如下: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')
感謝