gpt4 book ai didi

python - 如何在 django 中包装管理 View ?

转载 作者:太空宇宙 更新时间:2023-11-03 18:38:31 24 4
gpt4 key购买 nike

我有一些自定义代码想要在调用任何管理 View 之前执行。从概念上看,这似乎很简单;只需创建一个执行我想要的操作的包装 View ,然后将所有管理 View 包装在其中。但我该怎么做呢?

这是我的主 urls.py 的相关部分:

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
)

有没有一种方法可以包装所有管理 View ,而不必单独指定每个管理 View ?

最佳答案

您可以通过创建单独的 urls 模块、导入 admin.site.urls,然后动态构建 urlpatterns 来装饰所有路由函数基于您从 admin.site.urls.urlpatterns 读取的数据。我不建议修改管理 urls 模块中的路由函数,因为这些模式是通过静态引用公开的。

但正确的方法是写 custom middleware它可以在与装饰器相同的阶段插入 View 处理:在通过请求调用 View 之前,在抛出异常或返回响应之后。

关于python - 如何在 django 中包装管理 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21082207/

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