Как ограничить список полей для модели django, сгенерированный с помощью _meta.fields, с помощью фильтра
В своем проекте я пытаюсь получить имена полей модели, которая была выбрана с помощью выпадающего списка. Идея заключается в том, чтобы перечислить все базовые поля выбранной модели, выбрать одно из полей и сохранить комбинацию в модели для использования в сценарии позже.
Для создания списка полей я использую:
model_fields = [fld.name for fld in modelSelected._meta.fields]
где modelSelected
- ранее выбранная модель (отправленная из шаблона с помощью функции Ajax).
Установка работает как задумано с одной оговоркой. Когда я начинаю вводить в поле ввода имя поля модели (используя jQuery autocomplete
), все поля модели отображаются в списке (выбора).
Есть ли способ ограничить имена полей в том, что я пытаюсь сделать здесь?
Например, чтобы выполнить автозаполнение на модели HoldingCoy
я должен сделать:
parent_coy = HoldingCoy.objects.filter(name__icontains=q).annotate(value=F('name'),
label=F('name')).values('holding_coy', 'value', 'label')
Как я могу применить фильтр для ограничения количества полей, отображаемых в выпадающем списке, и добиться эффекта, аналогичного тому, который используется для запроса экземпляра модели (как в примере выше)?