У меня есть две модели следующим образом:
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')
Спасибо