更改 django admin.simplelistfilter 值以在测试期间查询

Change django admin.simplelistfilter value for querying during testing

我有一个继承自 simplelistfilter 的 django 管理过滤器。我试图以编程方式更改 self.value() 的值以进行测试,但无法弄清楚。非常感谢任何帮助。

此处代码(注意 TODO):https://github.com/makinacorpus/django-safedelete/pull/175/files

项目的维护者试图帮助我,但根据他的回答我无法弄清楚:https://github.com/makinacorpus/django-safedelete/pull/175

解决方法如下:

request = self.request_factory.get('/', {<field>: <value>})
request.user = self.request.user
changelist = self.modeladmin.get_changelist_instance(request)
queryset = changelist.get_queryset(request)

其中 是您要过滤的字段, 是它在管理过滤器查找中的所需值。

查询集将只包含过滤后的对象。