Как получить экземпляр пользователя при регистрации в 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. Так что я считаю, что это решит проблему.