Django-Formular mit Viele-zu-Viele-Beziehung speichert nicht

8

Ich habe ein benutzerdefiniertes Registrierungsformular für meine Nutzer, um ein Profil in meiner App hinzuzufügen. In letzter Zeit ist jedoch ein Fehler aufgetreten, da das Formular die Informationen nicht speichert, die in alle Felder eingegeben wurden.

Mein Benutzermodell MyUser hat eine ManyToMany-Beziehung mit einem anderen Modell, Interest , und hier treten die Probleme auf. Ich bin mir nicht sicher, ob es die RegistrationForm - oder register -Ansicht ist, die das verursacht, also habe ich sowohl unten, als auch den Modellcode eingeschlossen. Ich habe auch eine Ansicht für die Benutzer, um ihr Profil zu aktualisieren, auch enthalten, sobald es erstellt wird, und das funktioniert absolut perfekt. Dies ist die Ansicht personal . Wie gesagt, nur das Feld Interest wird nicht zurückgegeben, obwohl es auf der Registrierungsseite ausgefüllt wurde.

Jede Hilfe oder Beratung wird sehr geschätzt, danke.

models.py

%Vor%

ansichten.py

%Vor%

forms.py

%Vor%     
MrW 21.01.2015, 00:11
quelle

1 Antwort

17

Da Sie commit=false für den Aufruf super(RegistrationForm, self).save verwenden, wird das Viele-zu-Viele-Feld nicht gespeichert. Sie müssen daher self.save_m2m() nach user.save() in Ihrer save() Methode von RegistrationForm hinzufügen.

Siehe Ссылка

EDIT: save_m2m() ist auf dem Formular, nicht das Modell

    
Daniel Robinson 21.01.2015, 01:07
quelle