Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 8, 2022 17:05:48

VladimirDeg
Зарегистрирован: 2022-06-16
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Связать форму регистрации с БД

Привет!
Помогите, пожалуйста, установить связь
models:

class RegisterUser(models.Model):
username = models.CharField(max_length=50)
email = models.EmailField(max_length=50)
password = models.CharField(max_length=50)
time_create = models.DateTimeField(auto_now_add=True)

forms:
class RegisterUserForm(UserCreationForm):
username = forms.CharField(label='Логин', widget=forms.TextInput(attrs={'class': 'form-input'}))
email = forms.EmailField(label='Email', widget=forms.EmailInput(attrs={'class': 'form-input'}))
password1 = forms.CharField(label='Пароль', widget=forms.PasswordInput(attrs={'class': 'form-input'}))
password2 = forms.CharField(label='Повтор пароля', widget=forms.PasswordInput(attrs={'class': 'form-input'}))
captcha = CaptchaField(label='Каптча', widget=CaptchaTextInput(attrs={'class': 'form-input'}))
class Meta:
model = User
fields = ('username', 'email', 'password1', 'password2')

views:
class RegisterUser(CreateView):
form_class = RegisterUserForm
template_name = 'private_site/register.html'
success_url = reverse_lazy('login')

def get_context_data(self, *, object_list=None, **kwargs):
context = super().get_context_data(**kwargs)
context["title"] = "Регистрация"
return context

def form_valid(self, form):
user = form.save()
login(self.request, user)
return redirect('content')

Как сделать, чтобы после регистрации данные появлялись не только в админке, но и в БД?
В гугле нахожу, что вот тут указывают нужную модель вместо User:
class Meta:
model = User
но при замене не работает

Офлайн

#2 Ноя. 8, 2022 17:18:56

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2583
Репутация: +  60  -
Профиль   Отправить e-mail  

Связать форму регистрации с БД

Миграцию сделай
Прочитай про
AbstractUser vs AbstractBaseUser
The default User model in Django uses a username to uniquely identify a user during authentication. If you'd rather use an email address, you'll need to create a custom User model by either subclassing AbstractUser or AbstractBaseUser.

https://testdriven.io/blog/django-custom-user-model/



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Ноя. 9, 2022 13:38:27

VladimirDeg
Зарегистрирован: 2022-06-16
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Связать форму регистрации с БД

Спасибо, разобрался

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version