Ich benutze UpdateView
, um Benutzerkonto zu aktualisieren. Benutzer besteht aus User und Userprofile wie folgt aus:Benutzer und UserProfile nicht in einer Ansicht aktualisieren?
class UserProfile(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE,related_name='userprofile')
telephone = models.CharField(max_length=40,null=True)
Jetzt habe ich eine Klasse erstellt UpdateView
der Lage sein, zum Beispiel zu aktualisieren UserProfile
- Telefon, das funktioniert.
FORM:
class UserProfileUpdateForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ('telephone',)
URLS:
url(r'^edit-profile$',view=views.UserUpdate.as_view(),name='user_update'),
VIEW:
# @login_required
class UserUpdate(UpdateView):
form_class = UserProfileUpdateForm
context_object_name = 'user_update'
template_name = 'auth/profiles/edit-profile.html'
success_url = 'success url'
def get_object(self,queryset=None):
return self.request.user.userprofile
def form_valid(self, form):
#save cleaned post data
clean = form.cleaned_data
self.object = form.save()
return super(UserUpdate, self).form_valid(form)
Nun möchte ich einige Attribute ändern können, die auf Benutzer und einige Attribute gehört die gehört zu UserProfile
.
Ich habe bereits versucht, UserProfileUpdateForm
Felder Variable zu ändern, aber es hat nicht funktioniert ...
class UserProfileUpdateForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ('telephone','model.user.first_name',) <- this does not work, I want to add to the form attribute 'first_name' which belongs to User, not UserProfile
Wissen Sie, was die Lage zu tun, um zu sein Telefon zu ändern, vornamen, nachnamen usw. mit UpdateView
?