Как получить экземпляр пользователя при регистрации в django?

Я создаю сайт электронной коммерции. Я использую django auth модель для создания регистрации и входа, и теперь, я хотел добавить номер телефона в другой модели с экземпляром пользователя, чтобы реализовать otp. Но у меня возникают проблемы с получением экземпляра пользователя при регистрации. Итак, как я могу получить request.user при регистрации. Прошу вас помочь. views.py

def Register(request):
    form = CreateUserForm()
    phonenumber = request.POST.get('phone')
    if request.method == 'POST':
        form = CreateUserForm(request.POST)
        if form.is_valid():
            form.save()
            ***Profile.objects.create(user=request.user,phonenumber=phonenumber)***
            return redirect('login')
    context = {
    'form':form,
    }

models.py

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    phonenumber = models.CharField(verbose_name="Номер телефона", max_length=15)
    verified = models.BooleanField(default=False, verbose_name="Подтверждено", null=True, blank=True)

Помогите, пожалуйста!

Метод save из CreateUserForm вернет созданного Пользователя

    form = CreateUserForm(request.POST)
    if form.is_valid():
        user = form.save()
        Profile.objects.create(user=user, phonenumber=phonenumber)

Способ, который сработал для меня, был следующим:

Profile.objects.create(user = User.objects.get(pk=request.user.id), phonenumber=phonenumber)

Вам нужен только экземпляр пользователя из модели User. Так что я считаю, что это решит проблему.

Вернуться на верх