Django: добавить дополнительные поля в UserCreationForm - PullRequest
1 голос
/ 06 августа 2020

Можно ли добавить дополнительные поля в UserCreationForm в django.

По умолчанию в UserCreationForm есть 5 полей:

  1. имя пользователя
  2. электронная почта
  3. first_name
  4. last_name
  5. пароль

Если я хочу добавить дополнительные поля, такие как возраст, пол, то как я могу добавить их в UserCreationForm.

Я новичок в django будут заметны любые ссылки или описательные коды.

Ответы [ 2 ]

1 голос
/ 06 августа 2020

Если вы используете sh для хранения информации, связанной с пользователем, вы можете использовать OneToOneField для модели, содержащей поля для дополнительной информации.

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    additional_field1 = models.SomeField()
    .....

Прочтите документацию здесь для получения подробной информации о расширении модели пользователя.

1 голос
/ 06 августа 2020

Сделайте это согласно Ссылке

class SignUpForm(UserCreationForm):
    # My Own Custom Fields
    username = forms.CharField(forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Username'}))
    first_name = forms.CharField(forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'First Name'}), max_length=32, help_text='First name')
    last_name=forms.CharField(forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Last Name'}), max_length=32, help_text='Last name')
    email=forms.EmailField(forms.EmailInput(attrs={'class': 'form-control', 'placeholder': 'Email'}), max_length=64, help_text='Enter a valid email address')
    password1=forms.CharField(forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password'}))
    password2=forms.CharField(forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password Again'}))

    # The Default Fields Of The UserCreation Form
    class Meta(UserCreationForm.Meta):
        model = User
        # I've tried both of these 'fields' declaration, result is the same
        # fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2', )
        fields = UserCreationForm.Meta.fields + ('first_name', 'last_name', 'email',)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...