Как добавить в форму регистраций доп.поля Django
class UserRegisterForm(UserCreationForm):
username = forms.CharField(label='Имя пользователя',
widget=forms.TextInput(attrs={'class': 'form-control'}))
email = forms.EmailField(label='Почта', widget=forms.EmailInput(attrs={'class': 'form-control'}))
password1 = forms.CharField(label='Пароль', widget=forms.PasswordInput(attrs={'class': 'form-control'}))
password2 = forms.CharField(label='Подтверждение пароля', widget=forms.PasswordInput(attrs={'class': 'form-control'}))
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2']
Допустим есть такая форма. как мне сделать так чтобы я добавил еще какие-то поля, например фото, поля и тд?
Просто добавив в форму нужное поле не получится. В твоём нужно будет переопределить модель пользователя. Есть несколько вариантов как это сделать. Если тебе нужно только добавить поля, то настоятельно рекомендую использовать AbstractUser. Почитай эту статью, здесь подробно всё написано: https://tproger.ru/translations/extending-django-user-model/
Ещё советую почитать документацию django: https://docs.djangoproject.com/en/4.0/topics/auth/customizing/
Вот пример с AbstractUser:
models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
# Добавляй поля, которые тебе нужны
bio = models.TextField(max_length=500, blank=True)
location = models.CharField(max_length=30, blank=True)
birth_date = models.DateField(null=True, blank=True)
Добавьте следующую строчку в конец файла settings.py:
settings.py
AUTH_USER_MODEL = 'app_name.User'
# Указывай название твоего приложение и название модели