Фильтровать администратора django в соответствии с полиморфным

#python #django

#python #django

Вопрос:

Пытаюсь заставить django-polymorphic работать в admin. У меня есть несколько дочерних моделей, наследуемых от BaseModel, но нажатие на любую из них в Django admin приводит к списку всех объектов базовой модели, что для меня бесполезно. Я пробовал как переопределить набор запросов, так и включить list_filter, как предполагает документация (устаревшая, я узнал), но ни то, ни другое, похоже, не имеет никакого эффекта.

 class BaseModelChildAdmin(PolymorphicChildModelAdmin):

    base_model = BaseModel
    show_in_index = False
    form = BaseModelForm


class ChildModelAdmin(BaseModelChildAdmin):
    exclude = ('asset_url', 'asset_file')
    base_model = ChildModel
    show_in_index = True

    def queryset(self, request):
        qs = ChildModel.objects.all()
        return qs

class BaseModelAdmin(PolymorphicParentModelAdmin):
    base_model = BaseModel
    child_models = [(ChildModel, ChildModelAdmin)]

    list_filter = (PolymorphicChildModelFilter,)
  

Комментарии:

1. Как я уже говорил в одном из ваших предыдущих вопросов, вам необходимо нормализовать свои модели. Если бы вы это сделали, вы бы не пошли на эти погони за дикими гусями

2. @e4c5 Спасибо, но для меня это не вариант. Я не являюсь ведущим разработчиком здесь, и я работаю здесь менее двух недель. Хотя ваш совет может быть хорошим, он не очень полезен здесь в отношении того, что, по моему мнению, все еще является хорошим вопросом, который может быть полезен другим людям.