#python #django #django-models #django-views #django-forms
#питон #джанго #джанго-модели #джанго-просмотры #джанго-формы
Вопрос:
Я создал пользовательскую форму регистрации, и ранее она запрашивала только имя пользователя и пароль.Затем я добавил некоторые разделы , такие как имя, фамилия и адрес электронной почты, в раздел регистрации пользователей. После их добавления теперь этого не происходит при регистрации имени пользователя в базе данных во время регистрации пользователя. А также информация об имени и электронной почте не зарегистрирована.
models.py
from django.db import models class Register(models.Model): first_name = models.CharField(max_length=50,verbose_name="First Name") last_name = models.CharField(max_length=50,verbose_name="Last Name") username = models.CharField(max_length=50,verbose_name="Username") email = models.EmailField(verbose_name="Email") password = models.CharField(max_length=50,verbose_name="Password") confirm = models.CharField(max_length=50,verbose_name="Confirm Password") def __str__(self): return self.title
forms.py
from django import forms from.models import Register class LoginForm(forms.Form): username = forms.CharField(label="Username") password = forms.CharField(label="Password",widget=forms.PasswordInput) class RegisterForm(forms.ModelForm): class Meta: model = Register widgets = { 'password': forms.PasswordInput(), 'confirm': forms.PasswordInput(), } fields = ["first_name","last_name","username","email","password","confirm"]
views.py
from django.contrib.auth.backends import UserModel from django.shortcuts import render,redirect from .forms import LoginForm, RegisterForm from django.contrib.auth.models import User from django.contrib.auth import login,authenticate,logout from django.contrib import messages from django.contrib.auth.decorators import login_required # Create your views here. def register(request): form = RegisterForm(request.POST or None) if form.is_valid(): password = form.cleaned_data.get('password') username = form.cleaned_data.get('username') last_name = form.cleaned_data.get('last_name') email = form.cleaned_data.get('email') first_name = form.cleaned_data.get('first_name') newUser = User(username = username) newUser = User(first_name = first_name) newUser = User(email = email) newUser = User(last_name = last_name) newUser.set_password(password) newUser.save() login(request,newUser) messages.success(request,"Register successfully!") return redirect("index") context = { "form" : form } return render(request,"register.html",context) def loginUser(request): form = LoginForm(request.POST or None) context = { "form" : form } if form.is_valid(): username = form.cleaned_data.get('username') password = form.cleaned_data.get('password') user = authenticate(username = username, password = password) if user is None : messages.info(request,"Username or password is wrong!") return render (request,"login.html",context) messages.success(request,"Login Successfully") login(request,user) return redirect("index") return render(request,"login.html",context) def logoutUser(request): logout(request) messages.success(request,"Successfully logged out") return redirect("index") @login_required(login_url="user:login") def profileUser(request): return render(request,"profile.html")
Моя Регистрационная форма выглядит так : Изображение регистрационной формы :
Просто зарегистрируйтесь : Во время регистрации изображения
После регистрации в базе данных нет имени пользователя , электронной почты , имени кулака. В базе данных есть только информация о пароле и фамилии.
После регистрации база данных выглядит как картинка: желтые линии-это пустые области..
Ответ №1:
попробуйте это
def register(request): form = RegisterForm(request.POST or None) if form.is_valid(): password = form.cleaned_data.get('password') username = form.cleaned_data.get('username') last_name = form.cleaned_data.get('last_name') email = form.cleaned_data.get('email') first_name = form.cleaned_data.get('first_name') newUser = User(username = username,last_name = last_name,first_name = first_name,email = email) newUser.set_password(password) newUser.save() login(request,newUser) messages.success(request,"Register successfully!") return redirect("index") context = { "form" : form } return render(request,"register.html",context)