0
を働いていないと同時に、onetononeリンクフォームを保存し、私は次の形式を持っていました:ジャンゴ -
class UpdateProfile(forms.ModelForm):
username = forms.CharField(required=True)
email = forms.EmailField(required=True)
first_name = forms.CharField(required=True)
last_name = forms.CharField(required=True)
class Meta:
model = User
fields = ('username', 'email', 'first_name', 'last_name')
def clean_email(self):
username = self.cleaned_data.get('username')
email = self.cleaned_data.get('email')
if email and User.objects.filter(email=email).exclude(username=username).count():
raise forms.ValidationError('This email address is already in use. Please supply a different email address.')
return email
class UserDetailForm (forms.ModelForm):
linked_user = forms.CharField (required = True)
linked_password = forms.CharField (required = True, widget = forms.PasswordInput())
connections = forms.IntegerField (required = True)
class Meta:
model = User_detail
fields = ('linked_user','linked_password','connections')
私は両方とも有効に使用している場合、同時にそれらを保存しようとしている:
if request.method == 'POST':
form = UpdateProfile(request.POST, instance=request.user)
linked_form = UserDetailForm(request.POST, instance=request.user)
if all((form.is_valid(),linked_form.is_valid())):
user = form.save()
linked = linked_form.save(commit=False)
linked.user = user
linked.save()
msg = "Profile Updated"
else:
return error(request)
これはUser_detailモデルです:
class User_detail (models.Model):
user = models.OneToOneField (
User,
on_delete = models.CASCADE
)
linked_user = models.CharField (
verbose_name = 'LinkedIn Username',
max_length = 50,
)
linked_password = models.CharField (
max_length = 50,
verbose_name = 'LinkedIn Password',
)
connections = models.IntegerField (
verbose_name = 'Connections per day',
default = 24,
)
def __unicode__(self):
return u'%s' % (self.user.first_name + ' ' + self.user.last_name)
最初の形式は、保存されている第二ではありませんし、私はミスだか理解していません
大変助けになりました。
エラーはありますか?もしそうなら、それを投稿できますか? –
エラーはありません。それはそれが救われたと言って戻ってくる。最初のフォームは更新されます( 'user = form.save()'); 2番目の(linked_form)はしません。 – HenryM