2017-07-18 3 views
-2

Ich möchte nur eine Umleitung durch Aufruf einer Ansicht und übergeben Sie eine Variable.Django Name 'Kwargs' ist nicht definiert

Ich habe folgende Fehlermeldung:

name 'kwargs' is not defined 

Meine Ansicht, die die Variable erhalten soll:

def view_register(request, **kwargs): 
    form = MinimumRegisterForm() 

Meine Ansicht, die angeblich die Variable übergeben (am Ende):

def view_games(request, **kwargs): 
    media = settings.MEDIA 
    if request.method == 'POST': 
     form = MinimumRegisterForm(request.POST) 
     if form.is_valid(): 
      identifiant = form.cleaned_data['identifiant'] 
      email = form.cleaned_data['email'] 
      password = form.cleaned_data['password'] 
      confirm_password = form.cleaned_data['confirm_password'] 
      sex = form.cleaned_data['sex'] 
      if User.objects.filter(email=email).exists(): 
       messages.add_message(request, messages.INFO, 'Cette adresse email est déjà utilisé.') 
       return redirect(view_register)    
      if password == confirm_password: 
       strengh = password[0].isalpha() 
       if all(c.isalpha() == strengh for c in password): 
        messages.add_message(request, messages.INFO, 'Le mot de passe doit contenir au moins 8 charactères lettres et chiffres.') 
        return redirect(view_register, identifiant=kwargs['identifiant'])** 

Habe ich etwas übersehen?

+0

Ich sehe nicht, dass Sie 'Kwargs' in' view_games' definiert haben. –

+0

Muss 'def view_games (Anfrage, * args, ** kwargs) sein:' – dmitryro

Antwort

2

In view_games versuchen Sie, kwargs zu verwenden, aber es ist kein Parameter. Die Funktionsdeklaration sollte lesen ...

def view_games(request, **kwargs) 

Die Tatsache, dass Sie diesen Fehler erhalten, aber, und nicht got unexpected keyword argument in view_games, führt mich Ihnen fehlt Ihr identifiant Parameter in kwargs zu denken. Das könnte das nächste Problem sein.

+0

Wahr. Ich habe jetzt einen Fehler: KeyError at/start/games/ 'identifiant' – GrandGTO

2

Korrekt, Ihr def view_games(request) Funktionsprototyp akzeptiert keine Kwargs.

Stattdessen vielleicht wollten Sie die identifiant (kwarg) zu view_register wie so passieren:

... 
return redirect(view_register, identifiant=identifiant) 
+0

Ich habe einen Fehler: Reverse für 'start.views.view_register' mit Schlüsselwortargumente '{' identifiant ':' Clément '}' nicht gefunden. 1 Muster versucht: ['start/inschrift /'] – GrandGTO

1

Sieht aus wie Sie gerade ** kwargs auf Ihre Funktionsdefinition hinzufügen müssen, da seine fehlt, so dass die „kwargs undefined "Fehler scheinen logisch ... es ist wirklich undefiniert!

+0

Also zusammenzufassen: def view_games (Anfrage, ** kwargs): sollte den Trick tun! –

+0

Danke, aber ich habe jetzt einen Fehler: KeyError at/start/games/'identifiant' – GrandGTO

+0

Laut deiner anderen Antwort auf Dimgg sieht es so aus, als hätte er Recht, du solltest Kwargs überhaupt nicht benutzen! Entschuldigung dafür, dass Sie Ihren Code falsch gelesen haben, da Sie identifiant von Ihrem Formular bekommen (identifiant = form.cleaned_data ...), Ihr Problem scheint woanders zu liegen ... Sie könnten versuchen, einen "identifiant" -Wert zu drucken, bevor Sie register() aufrufen Es ist eine rohe Zeichenfolge, die Clement enthält und kein Wörterbuch zum Beispiel. Übrigens kann es helfen, den vollständigen Fehler (mit Datei-/Zeilennummer) zu kopieren/zu entfernen! –

Verwandte Themen