У меня есть модель AuthCustomUser(AbstractUser)
для регистрации нового пользователя.В нем будут сохранены необходимые данные для входа в систему, например: имя , электронная почта и пароль .
С другой стороны,У меня есть модель MetaUser (models.Model)
, которую я буду использовать для дополнительной информации пользователя, например: адрес , телефон и т. Д.
Я хочу создатьсвязь между обеими моделями в момент окончания регистрации пользователем.
В модели MetaUser(models.Model)
у меня есть внешний ключ:
user = models.ForeignKey (settings.AUTH_USER_MODEL, on_delete = models.CASCADE)
Когда пользователь зарегистрированданные будут введены в модель AuthCustomUser (AbstractUser)
, затем я хочу вставить идентификатор пользователя в модель MetaUser (models.Model)
, чтобы установить отношение внешнего ключа между обеими моделями.Наконец, пользователь начнет сеанс сразу после окончания регистрации, и ему будет предоставлен доступ к home.html
.
Это мои модели:
class MetaUser(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
screen_orientation = models.CharField(default='landscape', max_length=9)
def __str__(self):
return self.name
class AuthCustomUser(AbstractUser):
def __str__(self):
return self.name
А вот мое мнениереестра:
class SignUp(generic.CreateView):
form_class = CustomUserCreationForm
success_url = reverse_lazy('login')
template_name = 'signup.html'
def form_valid(self, form):
form.save()
username = self.request.POST['username']
password = self.request.POST['password1']
user = authenticate(username=form.cleaned_data['username'], password=form.cleaned_data['password1'],)
login(self.request, user)
if self.request.user.is_authenticated:
metaUser = MetaUser(user=self.request.user.id)
metaUser.save()
else:
return render(self.request, 'home.html', {})
У меня не может быть ID, вставленный в поле внешнего ключа во время регистрации.