【发布时间】:2025-12-12 11:00:02
【问题描述】:
这里是Django新手,如果某个模型字段为空,则需要基本中间件的帮助才能重定向到另一个视图。
我正在创建一个协议条款页面,如果他们的 Profile 模型上的 filed_terms 字段为空,用户必须在他们注册到平台后立即被重定向到该页面。
我为此使用中间件。但是我无法让它工作。这是我的中间件类:
class TermsMiddleware(object):
def process_request(self, request):
if request.user.profile.filled_terms is None:
return redirect(reverse(terms))
这给了我以下错误:
global name 'terms' is not defined
当我手动导航到它时,我也有完美工作的 url 匹配器:
url(r'^terms/', 'my_app.views.terms')
我的views.py 文件中有一个terms.html 模板和一个terms 视图,在所有其他方面都运行良好。我还将它添加到设置中间件要求中以确保它加载。
我是否必须将视图或 url 调度程序中的某些内容导入到我的中间件文件中?如果是这样,那会是什么?我已经有一段时间了,找不到任何有用的东西。
【问题讨论】:
标签: python django middleware django-middleware