【问题标题】:Django: AttributeError: 'function' object has no attribute 'as_view' showing in urls.pyDjango:AttributeError:'function'对象在urls.py中没有显示属性'as_view'
【发布时间】:2022-06-13 20:22:38
【问题描述】:

我已经编写了很多基于类的视图,并且还配置了它的 url,但是这个特定的视图显示了这个错误 AttributeError: 'function' object has no attribute 'as_view' 我不知道视图发生了什么

urls.py

path('<slug:course_slug>/<slug:quiz_slug>/results/', views.QuizResultsView.as_view(), name="quiz_results"),

views.py

@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()

【问题讨论】:

  • 这能回答你的问题吗? stackoverflow.com/questions/70540773/…
  • 尝试删除顶部的method_decorator
  • 因为 method_decorator 是一个函数,并且你将你的类继承给一个函数,这就是为什么你会得到一个名为 error 的“函数”

标签: python django django-rest-framework django-views django-class-based-views


猜你喜欢
  • 2021-04-24
  • 2016-03-17
  • 2021-01-12
  • 2016-12-08
  • 2017-09-28
  • 1970-01-01
  • 2020-01-09
  • 2023-03-03
  • 2021-11-23
相关资源
最近更新 更多