使用 changelist_view 在 django admin 中重定向

Posted

技术标签:

【中文标题】使用 changelist_view 在 django admin 中重定向【英文标题】:Redirect in django admin with changelist_view 【发布时间】:2018-11-20 21:33:04 【问题描述】:

我想在 django 管理面板中重定向来自:

http://127.0.0.1:8000/admin/events/event/

到:

http://127.0.0.1:8000/admin/events/event/?date__lt=2018-6-11

但我得到了一个错误:

未找到带有关键字参数“'date__lt': datetime.date(2018, 6, 11)' 的“events_event_changelist”的反向操作。尝试了 1 种模式:['admin/events/event/$']

这是我的代码:

def changelist_view(self, request, extra_context=None):
    if not request.method != 'GET':
        print(datetime(2018, 6, 11))
        url = reverse('admin:events_event_changelist', kwargs='date__lt': date.today())
        return HttpResponseRedirect(url)

请告诉我哪里出错了

【问题讨论】:

【参考方案1】:

这些不是 URL 模式的一部分,它们只是查询字符串参数。不要将它们作为 kwargs 传递给反转,将它们附加到结果中。

 url = '?date__lt='.format(reverse('admin:events_event_changelist'), date.today())

【讨论】:

感谢您的回答,但我的终端出现空白页和许多输出:11/Jun/2018 17:32:57] "GET /admin/events/event/?date__lt=2018-06-11 HTTP/1.1" 302 0【参考方案2】:

尝试日期格式 07/02/2018(月/日/年) 就像丹尼尔建议的那样(但有格式):

url = '?date__lt='.format(reverse('admin:events_event_changelist'), datetime.date.today().strftime('%m/%d/%Y'))

【讨论】:

以上是关于使用 changelist_view 在 django admin 中重定向的主要内容,如果未能解决你的问题,请参考以下文章

django admin changelist_view 中的自定义 html 字段

Django模板语言相关内容 Djan

launch_map: "Dict[asyncio.Task[object], threading.Thread]" = ​​ -Error While Creating Djan

Django 条件管理员 list_editable

Session

Checkmarx 反射型 XSS