gpt4 book ai didi

python - 条件 Django 中间件(或如何排除管理系统)

转载 作者:太空狗 更新时间:2023-10-29 17:01:34 25 4
gpt4 key购买 nike

我想使用我在整个网站上编写的一些中间件(大量页面,所以我选择不使用装饰器,因为我想为所有页面使用代码)。唯一的问题是我不想将中间件用于管理代码,而且它似乎对它们有效。

有什么方法可以配置 settings.py 或 urls.py,或者代码中的某些内容以防止它在管理系统的页面上执行?

非常感谢任何帮助,

干杯

保罗


我想这样做的主要原因是在中间件中使用了一个 XML 解析器,它弄乱了非 XML 下载。我已经添加了一些额外的代码来检测代码是否为 XML,并且不尝试解析任何它不应该解析的内容。

对于其他不方便的中间件,我可能会使用上面 piquadrat 概述的方法,或者可能只使用 View 装饰器 - 干杯 piquadrat!

最佳答案

一般的方法是(基于 piquadrat 的回答)

def process_request(self, request):
if request.path.startswith(reverse('admin:index')):
return None
# rest of method

这样,如果有人将 /admin/ 更改为 /django_admin/,您仍然会受到保护。

关于python - 条件 Django 中间件(或如何排除管理系统),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1028019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com