首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django: AttributeError:'function‘对象没有在urls.py中显示的属性'as_view’

Django: AttributeError:'function‘对象没有在urls.py中显示的属性'as_view’
EN

Stack Overflow用户
提问于 2022-06-13 12:22:38
回答 1查看 946关注 0票数 0

我编写了很多基于类的视图,也配置了它的urls,但是这个部分视图显示了这个错误-- AttributeError: 'function' object has no attribute 'as_view' --我不知道视图是怎么回事

urls.py

代码语言:javascript
运行
复制
path('<slug:course_slug>/<slug:quiz_slug>/results/', views.QuizResultsView.as_view(), name="quiz_results"),

views.py

代码语言:javascript
运行
复制
@method_decorator([login_required, teacher_required], name='dispatch')
class QuizResultsView(DetailView):
    model = Quiz
    context_object_name = 'quiz'
    template_name = 'classroom/teachers/quiz_results.html'

    def get_context_data(self, **kwargs):
        quiz = self.get_object()
        course = Course.objects.get(slug=course_slug)
        quiz = Quiz.objects.get(slug=quiz_slug, course=course)
        taken_quizzes = quiz.taken_quizzes.select_related('student__user').order_by('-date')
        total_taken_quizzes = taken_quizzes.count()
        quiz_score = quiz.taken_quizzes.aggregate(average_score=Avg('score'))
        extra_context = {
            'taken_quizzes': taken_quizzes,
            'total_taken_quizzes': total_taken_quizzes,
            'quiz_score': quiz_score,
            'total_questions':quiz.questions.count()
        }
        kwargs.update(extra_context)
        return super().get_context_data(**kwargs)

    def get_queryset(self):
        self.kwargs['course_slug']
        self.kwargs['quiz_slug']
        return self.request.user.quizzes.all()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-13 13:17:01

使用LoginRequiredMixin而不是login_required装饰器。login_required返回仅为类指定的函数和as_view。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72602785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档