在 Django 管理中,用户可以设置过滤器来限制更改列表中显示的行。如何获取具有由查询字符串定义的过滤器集的 QuerySet 实例?例如,如果我传递 ?start_date_gte=2009-11-06,Django 管理员将在某处应用 qs.filter(start_date__gte...) 。我如何访问这样的查询集?
我需要这个,因为显然我不想重写采用这些 GET 参数和相应的 QuerySet 的 filter() 的代码。
看起来很有趣。然而,我正在谈论在管理中使用该查询集。找到答案了,见下:
class MyAdmin(admin.ModelAdmin):
def changelist_view(self, request, extra_context=None):
from django.contrib.admin.views.main import ChangeList
cl = ChangeList(request, self.model, self.list_display, self.list_display_links, self.list_filter, self.date_hierarchy, self.search_fields, self.list_select_related, self.list_per_page, self.list_editable, self)
# getting query set with same filters like current change list
filtered_query_set = cl.get_query_set()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)