У меня есть абстрактный пользователь , который содержит отношение к модели Company с помощью FK (то есть каждый пользователь принадлежит компании) и некоторые дополнительные поля.Я создал CustomSignupForm (RegistrationForm) , который наследует django-allauth RegistrationForm и принимает дополнительные поля, такие как first_name, last_name, но мне нужно расширить его, чтобы каждый раз, когда пользователь регистрируется, я создавал компанию, а затем назначалuser to (установить FK).
Это мой forms.py
, который создает пользователя с дополнительными полями (но без компании):
class CustomSignupForm(SignupForm):
first_name = forms.CharField(max_length=30, label='First Name')
last_name = forms.CharField(max_length=30, label='Last Name')
# company_name = forms.CharField(max_length=30, label='Company')
def signup(self, request, user):
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.save()
return user
Как создать объект Companyвнутри функции def signup(self, request, user)
и установите ее FK для созданного пользователя?
Я пытался сделать это так, но безуспешно:
class CustomSignupForm(SignupForm):
first_name = forms.CharField(max_length=30, label='First Name')
last_name = forms.CharField(max_length=30, label='Last Name')
company_name = forms.CharField(max_length=30, label='Company')
def signup(self, request, user):
company = Company()
company.company_name = self.cleaned_data['company_name']
company.save()
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.company = company
user.save()
return user