TypeError at / confirmemail / amlqctnhel / confirmemail () nimmt genau 2 Argumente (1 gegeben), warum?

Fehler:

TypeError at /confirmemail/amlqctnhel/ confirmemail() takes exactly 2 arguments (1 given) Request Method: GET Request URL: http://127.0.0.1:8000/confirmemail/amlqctnhel/ Django Version: 1.3.1 Exception Type: TypeError Exception Value: confirmemail() takes exactly 2 arguments (1 given) Exception Location: /usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py in get_response, line 111 Python Executable: /usr/bin/python Python Version: 2.6.6 Python Path: ['/home/user1/djangoblog', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/pymodules/python2.6/gtk-2.0'] 

Urls.py:

  • Entfernen von bestimmten Gegenständen aus Djangos Cache?
  • Vergleich von Benutzer-Facebook / Twitter-Freunde zu Website-Nutzer in Python / Django
  • Gibt es einfach, gruppennamen eines benutzers in django zu bekommen
  • Sphinx automodule: wie man die Klassen im selben Modul referenziert?
  • MapperParsingException zum Rebuild_index im Django-Heuhaufen mit Elastiksuche
  • PyDev und Django: wie man den Server neu starten?
  •  url(r'^confirmemail/[a-zA-Z0-9]{10}/$', 'blog.views.confirmemail'), 

    Views.py:

     def confirmemail(request,token): user = Users.objects.get(email_token = token) return render_to_response('confirmemail.html', {'user': user}, context_instance=RequestContext(request)) 

    Es wird sehr geschätzt, wenn jemand mir helfen kann, es zu beheben. Danke.

    2 Solutions collect form web for “TypeError at / confirmemail / amlqctnhel / confirmemail () nimmt genau 2 Argumente (1 gegeben), warum?”

    In einer URLconf müssen Sie Capturing-Gruppen in deiner Regex verwenden, um Positions- oder Keyword-Argumente in deiner Ansicht zu erreichen. Wenn Sie eine benannte Capture-Gruppe verwenden, werden Keyword-Argumente verwendet. Andernfalls werden Positionsargumente verwendet.

    Hier ist, was deine url() Linie aussehen soll:

     url(r'^confirmemail/([a-zA-Z0-9]{10})/$', 'blog.views.confirmemail'), # or url(r'^confirmemail/(?P<token>[a-zA-Z0-9]{10})/$', 'blog.views.confirmemail'), 

    Das erste Formular verwendet ein Positionsargument (und Positionsargumente werden von den Capture-Gruppen in der URL geordnet). Das zweite Formular verwendet ein Keyword-Argument, in diesem Fall token . Das zweite Formular ist mehr Zeichen, aber auch sicher gegen Parametrierung.

    Sie arent Erfassung eines Musters in Ihrer URL, so dass es nicht einen Wert für Ihren Token-Parameter

     url(r'^confirmemail/([a-zA-Z0-9]{10})/$', 'blog.views.confirmemail'), 

    Beachten Sie, dass ich Ihr Muster in einer Capture-Gruppe verpackt habe

    Python ist die beste Programmiersprache der Welt.