ユーザー(ユーザー名、電子メール、パスワード)とユーザープロファイル(名と姓)に関する情報を含むサインアップフォームとコールセーブを送信すると私のviews.pyにform.save()
とprofileform.save()
のようなものがあります。Django - 1つではなく2つのプロファイルを作成するユーザーとユーザープロファイルフォーム
しかし、私がDjango Adminに入ると、ユーザープロファイルとプロファイルが別々に保存されていることがわかります。
ので(画像表示装置など)は、2つの異なるプロファイル、私は、フォームに入力したユーザー名を含むもの、と最初と最後の名前を持つ他のがあります。
ここに私のviews.pyだ:
def signup(request):
if request.method == 'POST':
form = UserRegistrationForm(data=request.POST)
profileform = UserRegistrationProfileForm(data=request.POST)
if form.is_valid() and profileform.is_valid():
user = form.save()
profileform.save()
if user is not None:
if user.is_active:
user_login(request, user, backend='django.contrib.auth.backends.ModelBackend')
return redirect('/dashboard/')
else:
form = UserRegistrationForm()
profileform = UserRegistrationProfileForm()
return render(request, 'signup-user.html', {'form': form, 'profileform': profileform})
Forms.py(フォームの輪郭部分のため):
class UserRegistrationProfileForm(forms.ModelForm):
user_fname = forms.CharField(#)
user_lname = forms.CharField(#)
class Meta:
model = UserProfileModel
fields = ['user_fname', 'user_lname']
def clean(self):
#...
def save(self, commit=True):
profile = super(UserRegistrationProfileForm, self).save(commit=False)
if commit:
profile.save()
return profile
Models.py(受信信号を含むプロファイルのため):
class UserProfileModel(models.Model): # For the Company Employees
user = models.OneToOneField(UserModel, related_name='userprofilemodel', on_delete=models.CASCADE, blank=True, null=True)
user_fname = models.CharField(max_length=30, verbose_name='First Names')
user_lname = models.CharField(max_length=30, verbose_name='Last Name')
class Meta:
verbose_name = 'Profile'
def __unicode__(self):
#...
def save(self, *args, **kwargs):
super(UserProfileModel, self).save(*args, **kwargs)
@receiver(post_save, sender=UserModel)
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfileModel.objects.create(user=instance)
@receiver(post_save, sender=UserModel)
def save_user_profile(sender, instance, **kwargs):
instance.userprofilemodel.save()
何が間違っているのか分かりませんか?私は、フォームとして、ユーザとしてのユーザインスタンスと、姓と名を持つ1つのユーザプロファイルを作成します。
どこが間違っているのでしょうか?
更新
ここUserRegistrationForm
クラスです:
class UserRegistrationForm(forms.ModelForm):
#
class Meta:
model = UserModel
fields = ['related_company_slug', 'username', 'user_email', 'password', 'passwordrepeat']
def clean(self):
#
def save(self, commit=True):
self.check_company
user = super(UserRegistrationForm, self).save(commit=False)
user.set_password(self.cleaned_data.get('password'))
user.is_active = True
if commit:
user.save()
return user
'UserRegistrationForm'クラスを見ることはできますか? –
私の質問を更新しました@MattCremeens – jayt