【发布时间】: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