#python #testing #django-admin-filters
Вопрос:
У меня есть фильтр администратора django, который наследуется от simplelistfilter. Я пытаюсь изменить значение self.value() программно для целей тестирования, но не могу понять это. Был бы признателен за любую помощь.
Код здесь (обратите внимание на задачи): https://github.com/makinacorpus/django-safedelete/pull/175/files
Сопровождающий проекта пытался мне помочь, но я не могу понять это, основываясь на его ответе: https://github.com/makinacorpus/django-safedelete/pull/175
Ответ №1:
Решил это следующим образом:
request = self.request_factory.get('/', {<field>: <value>})
request.user = self.request.user
changelist = self.modeladmin.get_changelist_instance(request)
queryset = changelist.get_queryset(request)
Где <field> — это поле, которое вы фильтруете, а <value> — его желаемое значение в поиске фильтра администратора.
Набор запросов будет содержать только отфильтрованные объекты.