Ich versuche, Benutzern zu ermöglichen, ihre Profile nach der Registrierung zu erstellen und zu bearbeiten. Ich benutze ein Modellformular. Was ich tun muss, ist das Arbeitgebermodell-Feld mit dem aktuellen Benutzer gefüllt werden.
Hier ist meine Meinung:
%Vor%Hier ist mein Modell:
%Vor%Hier ist meine Modellform
%Vor% Um Ihr Formular mit Werten aus Ihrer vorhandenen Modellinstanz zu hydratisieren, müssen Sie das Argument instance
im Modellformular verwenden:
Um den aktuellen request.user zu injizieren, können Sie die __init__
von EditProfileForm
überschreiben, ein zusätzliches Schlüsselwortargument übergeben (oder arg, es ist nicht wirklich wichtig) und es vorher aus den Kwarts herausholen Aufruf Super, damit Sie das ModelForm ein Schlüsselwortargument nicht übergeben, das es nicht erwartet:
Nun müssen Sie commit=False
nicht übergeben und den Wert von employer
in der Ansicht manuell festlegen.
Tags und Links django django-forms django-models django-views