Измените значение django admin.simplelistfilter для запроса во время тестирования

#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> — его желаемое значение в поиске фильтра администратора.

Набор запросов будет содержать только отфильтрованные объекты.