Как создать фильтр подкатегорий, который зависит от фильтра категории в администраторе Django?

в фильтре списка модели в моем администраторе Django у меня есть фильтр Category , и я хотел бы добавить фильтр Подкатегория , значения которого зависят от выбранного < код> Категория .

Как я могу достичь этого, используя ModelAdmin.list_filter ?

спасибо

1
nl ja de

1 ответы

Создайте удержание класса из SimpleListFilter для подкатегории.

Внутри метода lookups проверьте, есть ли внутри request.GET соответствующий запрос для Category , если есть, сделайте запрос на основе этого фильтр.

Должен выглядеть примерно так: (измените в соответствии с вашими реальными моделями. Можете иметь синтаксическую ошибку, я не тестировал код, но он должен выглядеть очень похожим)

class SubCategoryFilter(SimpleListFilter):
    title = 'sub category'
    parameter_name = 'sub_category'

    def lookups(self, request, model_admin):
        sub_categories = Category.objects;
        if 'category' in request.GET:
             sub_categories = sub_categories.filter(main_category=request.GET['category'])
        return (
            (sub_cat.pk,sub_cat.text) for sub_cat in sub_categories
        )
4
добавлено
Я знаю, что это довольно старый вопрос/ответ, но я считаю, что это должен быть Category.objects.all() вместо Category.objects . В противном случае вы получите сообщение об ошибке, например: «Объект-менеджер не является итерабельным».
добавлено автор corecase, источник
Django
Django
1 931 участник(ов)

Полезная информация и правила: https://github.com/django-ru/faq Вакансии и резюме: @django_jobs Пофлудить идём сюда: @django_flood Статистика чата: combot.org/chat/-1001063854692

django_jobs
django_jobs
916 участник(ов)

Поиск и предложения работы (Django) Правила: https://t.me/django_jobs/4 Вакансии с тегом #job улетают в канал @django_jobs_board Вопросы к @amureki Основной чат @pydjango

Django
Django
733 участник(ов)

Веб-фреймворк для перфекционистов с дедлайнами. Наша группа на vk: https://vk.com/django_framework В Discord: https://discord.me/django_framework по всем вопросам @MechanisM

django flood
django flood
71 участник(ов)

Флудилка джангистов Пока без правил