Некоторые объекты форм django не сохраняются в базе данных?

#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)