Как переопределить форму регистрации django-allauth, когда пользовательский пользователь содержит отношение FK к другой модели? - PullRequest
0 голосов
/ 26 марта 2019

У меня есть абстрактный пользователь , который содержит отношение к модели 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...