Django中LoginRequiredMixin未定义,如何在views.py中导入?
解决Django中
Name 'LoginRequiredMixin' is not defined错误 嘿,这个问题很常见!你碰到的Name 'LoginRequiredMixin' is not defined错误,原因很简单——你还没把这个权限控制的Mixin类导入到你的views.py文件里。
具体解决步骤
你只需要在views.py文件的顶部,添加下面这条导入语句:
from django.contrib.auth.mixins import LoginRequiredMixin
补充完整的代码示例
把导入语句加入后,你的代码应该是这样的:
# 先添加必要的导入 from django.contrib.auth.mixins import LoginRequiredMixin from django.views import View from django.shortcuts import render, redirect from .models import Order from django.contrib import messages from django.core.exceptions import ObjectDoesNotExist class OrderSummaryView(LoginRequiredMixin, View): def get(self, *args, **kwargs): try: order = Order.objects.get(user=self.request.user, ordered=False) context = { 'object': order } return render(self.request, 'order_summary.html', context) except ObjectDoesNotExist: messages.warning(self.request, "You do not have an active order") return redirect("/")
额外小说明
LoginRequiredMixin是Django官方提供的类视图扩展,作用是强制用户必须登录才能访问该视图对应的页面。如果用户未登录,它会自动跳转到Django默认的登录页面;你也可以通过给视图类添加login_url属性,自定义未登录时的跳转地址,比如:
class OrderSummaryView(LoginRequiredMixin, View): login_url = '/custom-login/' # 自定义登录页面路径 # 其余代码不变
内容的提问来源于stack exchange,提问作者Riyas Ac
相关产品推荐
相关产品推荐

