首页 > 解决方案 > 名称字段未保存在 Django 注册中

问题描述

我正在为我的应用程序制作注册表单,它也运行良好。但是错误是,每当用户登录应用程序时,它不会保存新字段的数据,并且在注册页面中也可以看到完整的注册表单。First_name 和 Last_name 其他数据(如用户名和电子邮件)保存没有任何问题。我也迁移数据库。这是应用程序管理员的图片。

管理页面

我的代码

表格.py

from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
from django.contrib.auth import login, authenticate, logout
from django import forms


class RegisterForm(UserCreationForm):
    email = forms.EmailField()
    First_name = forms.CharField()
    Last_name = forms.CharField()

    class Meta:
        model = User
        fields = ["First_name", "Last_name","username", "email", "password1", "password2"]  

    def __init__(self, *args, **kwargs):
            super(RegisterForm, self).__init__(*args, **kwargs)

    def clean_email(self):
        email = self.cleaned_data.get('email')
        if User.objects.filter(email__iexact=email).exists():
            raise forms.ValidationError('A user has already registered using this email')
        return email
    def clean_username(self):
        username = self.cleaned_data.get('username')
        if User.objects.filter(username__iexact=username).exists():
            raise forms.ValidationError('A user has already registered using this username')
        return username

视图.py

from django.shortcuts import render, redirect
from django.contrib import messages
from .forms import RegisterForm
from django.contrib.auth import login, authenticate, logout



def register(request):
    if request.method == 'POST': #if the form has been submitted
        form = RegisterForm(request.POST) #form bound with post data
        if form.is_valid():
            form.save()
            First_name = form.cleaned_data.get('First_name')
            messages.success(request, f' {First_name}!')
            return redirect('/')
    else:
        form = RegisterForm()
    return render(request, 'registration/register.html', {'form': form})

标签: pythonpython-3.xdjangodjango-viewsdjango-forms

解决方案


推荐阅读