Привет, у меня есть форма регистрации пользователя в моем приложении django, которое собирает дополнительные данные, когда пользователь пытается зарегистрировать такие адреса, как город, город, номер телефона и т.д.
Эти данные сохраняются в классе модели учетной записи через сигнал post_save
. Процесс создания пользователя выглядит примерно так:
# Function to Create user Account/Profile
def create_user_account(sender, instance, created, **kwargs):
if created:
models.Account.objects.create(user=instance)
# Create User / User Registration
def UserRegistration(request):
if request.method == 'POST':
username = request.POST['fn'].capitalize() + ' ' + request.POST['ln'].capitalize()
# CREATE USER
newuser = User.objects.create_user(username=username, email=request.POST['email'], password=request.POST['pw'])
newuser.first_name = request.POST['fn'].capitalize()
newuser.last_name = request.POST['ln'].capitalize()
newuser.save()
return HttpResponse(username)
#Post Save handler to create user Account/Profile
post_save.connect(create_user_account, sender=User)
Здесь функция UserRegistration
вызывается, когда пользователь отправляет форму, и под этой функцией я могу получить данные POST, я хочу передать эти данные методу create_user_account, чтобы он заполнял поля в модели Account.
Сейчас я вижу объекты учетной записи, созданные в базе данных, но все поля, кроме поля пользователя, пусты. Очевидно, поскольку переменные POST не передаются методу create_user_account
.