You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 18:27:32