私はUpdateView
を使用してユーザーアカウントを更新します。ユーザーはこのように、ユーザーとのUserProfileで構成されていますユーザーとユーザープロファイルを1つのビューで更新できません。
class UserProfile(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE,related_name='userprofile')
telephone = models.CharField(max_length=40,null=True)
を今、私は例UserProfile
のために更新できるようにクラスUpdateView
を作成しました - 働く電話。
FORM:
class UserProfileUpdateForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ('telephone',)
のURL:
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)
、私は、ユーザーに属し、いくつかの属性といくつかの属性に変更することができるようにしたいですUserProfile
に属します。
は、私はすでに変数UserProfileUpdateForm
フィールドを変更しようとしましたが、それがすべてでは動作しません...あなたが使用してLAST_NAMEなど、FIRST_NAME、電話を変更することができるように何をすべきか
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
を知っていますかUpdateView
?