简体   繁体   English

Django TypeError: get() 得到了一个意外的关键字参数“quiz_name”

[英]Django TypeError: get() got an unexpected keyword argument 'quiz_name'

I am trying to access a url from flutter webview , however, I am getting the following error.我正在尝试从 flutter webview 访问 url,但是,出现以下错误。 When I try to access this directly, I dont see any error.当我尝试直接访问它时,我没有看到任何错误。

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视图.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)

urls.py网址.py

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

What am I missing here?我在这里缺少什么? I am using the same view elsewhere without any knox Tokenauthentication and works as expected.我在其他地方使用相同的视图,没有任何 knox Tokenauthentication 并且按预期工作。

Since you're using a paramater quiz_name in the url , it is being passed to your corresponding view.由于您在url使用了paramater quiz_name ,它将被传递到您的相应视图。 The current signature of your get method doesn't accept any additional parameters.您的get方法的当前签名不接受任何其他参数。

You may fix this by changing the method signature to:您可以通过将方法签名更改为:


def get(self, request, *args, **kwargs):
    quiz_name = kwargs.get('quiz_name')
    ...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 错误-TypeError在Django中获得了意外的关键字参数&#39;name&#39; - Error - TypeError got an unexpected keyword argument 'name' in django TypeError: contact() got an unexpected keyword argument 'name' - 为什么我在 django 中出现此类错误? - TypeError: contact() got an unexpected keyword argument 'name' -why I get such error in django? / Accept() 处的 TypeError 得到了意外的关键字参数“名称” - TypeError at / Accept() got an unexpected keyword argument 'name' TypeError:得到了意外的关键字参数“ name” - TypeError: got an unexpected keyword argument “name” 类型错误:Planet() 有一个意外的关键字参数“名称” - TypeError: Planet() got an unexpected keyword argument 'name' Python TypeError: got an unexpected keyword argument 'name' - Python TypeError: got an unexpected keyword argument 'name' Django get() 得到了一个意外的关键字参数“slug” - Django get() got an unexpected keyword argument 'slug' TypeError:得到一个意外的关键字参数 - TypeError: got an unexpected keyword argument Django REST Framework (DRF):TypeError: register() 得到了一个意外的关键字参数“base_name” - Django REST Framework (DRF): TypeError: register() got an unexpected keyword argument 'base_name' Django TypeError:allow_migrate()得到一个意外的关键字参数'model_name' - Django TypeError: allow_migrate() got an unexpected keyword argument 'model_name'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM