Ich verwende ein Modelform für Benutzer, um Vorname und Nachname zu bearbeiten, aber ich möchte ein zusätzliches Feld von UserProfile (die eine 1-to-1-Beziehung mit Benutzer hat) hinzugefügt, um diese.
class UserProfileInfoForm(forms.ModelForm):
""" Profile Model field specifications for edit.
"""
class Meta:
model = User
fields = ('first_name', 'last_name', 'user_phonemobile')
first_name = forms.CharField(
label = _('First name'),
max_length = 30,
required = True
)
last_name = forms.CharField(
label = _('Last name'),
max_length = 30,
required = True
)
user_phonemobile = forms.CharField(
label = _('Mobile phone'),
max_length = 15,
required = False,
)
Ich habe das zusätzliche Feld in der ModelForm (und auf der Seite angezeigt), aber ich kann nicht bekommen, es mit dem Wert aus dem anderen Modell (UserProfile) zu füllen. Ich habe versucht, es zu tun, die Unterklasse der init der Modellform, aber bisher ohne Erfolg.
Ich könnte natürlich ein normales Formular erstellen und es in meiner Ansicht wie folgt ausfüllen
userdata = request.user.get_profile()
data = {
'first_name': request.user.first_name,
'last_name': request.user.last_name,
'user_phonemobile': userdata.user_phonemobile,
}
profileinfoform = UserProfileInfoForm(data)
Aber wenn ich in Zukunft zusätzliche Felder hinzufüge, habe ich das Gefühl, dass dies meine Ansichtsdefinition unübersichtlich machen wird.
Herzliche Grüße,
Gerard.