У меня есть форма регистрации, которая выглядит следующим образом:
class SignUpForm(UserForm):
username = forms.CharField(max_length=32, min_length=1)
initials = forms.CharField(max_length=3)
password = forms.CharField(widget=forms.PasswordInput())
confirm_password = forms.CharField(widget=forms.PasswordInput())'
...
Я создаю пользователя следующим образом:
class SignUpView(FormView, LoginErrorView):
form_class = SignUpForm
template_name = "website/sign_up.html"
def form_valid(self, form):
User.objects.create_user(username=form.cleaned_data['username'],
email=form.cleaned_data['email'],
password=form.cleaned_data['password'])
....
Модель профиля выглядит следующим образом:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
initials = models.CharField(max_length=3)
....
Я создаю профиль следующим образом:
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
instance.profile.save()
Что я хотел бы сделать, это сохранить инициалы в post_save / create_user_profile (в модели профиля) из SignUpForm, когда я Я создаю объект профиля, но я не могу найти простой способ сделать это. Есть идеи?