gpt4 book ai didi

python - 重复键值违反唯一约束 "auth_user_username_key"详细信息 : Key (username)=(None) already exists

转载 作者:太空宇宙 更新时间:2023-11-03 11:42:34 25 4
gpt4 key购买 nike

我想使用自定义注册模型注册用户,但我不断收到以下错误:

duplicate key value violates unique constraint "auth_user_username_key" DETAIL: Key (username)=(None) already exists

如何修复此错误。

这是我到目前为止创建的代码:

urls.py 中,我为各个页面创建了 url 配置。

from django.conf.urls import url
from django.contrib.auth.views import login


from . import views

urlpatterns = [

url(r'^$', views.nest, name = 'nest'),

url(r'^login/$', login, {'template_name' : 'Identities/login.html'}, name = 'login'),

url(r'^register/$', views.register, name = 'register'),
]

forms.py 中,我创建了自定义注册表单。

from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm

# Create custom user registration


class CreateAccountForm(UserCreationForm):

email = forms.EmailField(required = True)


class Meta:

model = User

fields = (

'first_name',
'last_name',
'email',
'password1',
'password2'
)

def save(self, commit = True):
user = super(CreateAccountForm, self).save(commit = False)
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.email = self.cleaned_data['email']

if commit:

user.save()

return user

views.py 中,我创建了注册 View 函数。

from django.shortcuts import render, redirect
from Identities.forms import CreateAccountForm

# Create your views here.

def nest(request):
return render(request, 'Identities/nest.html')


def register(request):

if request.method == 'POST':

form = CreateAccountForm(request.POST)

if form.is_valid():
form.save()

else:
return redirect(reverse('Identities:logout'))

else:

form = CreateAccountForm()
var = {'form' : form}
return render(request, 'Identities/create_account.html', var)

最佳答案

您需要在表单中包含用户名。因为 username 是一个唯一的字段,不能在表单中排除。如果您在表单中排除它,则需要通过为每个用户生成唯一的用户名来处理它,这有点乏味。

class CreateAccountForm(UserCreationForm):
email = forms.EmailField(required = True)

class Meta:
model = User

fields = (
'username'
'first_name',
'last_name',
'email',
'password1',
'password2'
)
. . . . . .
. . . . . .

关于python - 重复键值违反唯一约束 "auth_user_username_key"详细信息 : Key (username)=(None) already exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46498168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com