Django TypeError:get()得到一个意外的关键字参数'quick\u name'

2024-04-25 08:45:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从FlatterWebView访问url,但是,我得到了以下错误。 当我试图直接访问它时,我没有看到任何错误

File "/home/quiz/views.py", line 629, in dispatch
    return super(QuizTakeAutoAuth, self).dispatch(request, *args, **kwargs)
TypeError: get() got an unexpected keyword argument 'quiz_name'

views.py

class QuizTakeAutoAuth(APIView):

    authentication_classes = (TokenAuthentication,)
    permission_classes = (IsAuthenticated,)

   
    def get(self, request, format=None):
        content = {
            'foo': 'bar'
        }
        
        return Response(content)

   
    def dispatch(self, request, *args, **kwargs):
        self.quiz = get_object_or_404(Quiz, url=self.kwargs['quiz_name'])

        if self.quiz.draft and not request.user.has_perm('quiz.change_quiz'):
            raise PermissionDenied

        if self.sitting is False:
            print("sitting false")
            if self.logged_in_user:
                return render(request, self.single_complete_template_name)
            else:                    
                redirecturl = "/login/?next=/quiz/"+self.kwargs['quiz_name']+"/startquiz/"
                return redirect(redirecturl)   

        return super(QuizTakeAutoAuth, self).dispatch(request, *args, **kwargs)

url.py

url(r'^(?P<quiz_name>[\w-]+)/startquiz/$',view=QuizTakeAutoAuth.as_view(), name='quiz_question_auth'),

我错过了什么?我在其他地方使用相同的视图,没有任何knox Tokenauthentication,并按预期工作


Tags: namepyselfurlgetreturnifrequest