Модель не хочет сохранять данные из формы при регистрации Djnago
Я получаю из формы данные типа Имя, Фамилия, почта, пароль, логин. После хочу передать их из формы в модель в момент регистрации. Пользователь появляется в User
, но данные в модель не передаются, хотя запись появляется. В записи только связь с User
, то есть поля first_name, last_name, email в модели ProfileUser пустые.
Views:
def RegForm(request):
form = SigUpForm(request.POST)
if form.is_valid():
user = form.save()
user.refresh_from_db()
user.ProfileUser.first_name = form.cleaned_data.get('first_name')
user.ProfileUser.last_name = form.cleaned_data.get('last_name')
user.ProfileUser.email = form.cleaned_data.get('email')
user.save()
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password1')
user = authenticate(username,password)
login(request,user)
return redirect('home')
else:
form = SigUpForm()
return render(request, 'Earth/registration/RegForm.html',{'form':form})
models:
class ProfileUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
first_name = models.CharField(max_length=120)
last_name = models.CharField(max_length=200)
email = models.EmailField(max_length=200)
def __str__(self):
return self.user.username
@receiver(post_save, sender=User)
def update_profile_signal(sender, instance, created, **kwargs):
if created:
ProfileUser.objects.create(user=instance)
instance.ProfileUser.save()
Источник: Stack Overflow на русском