Python 尝试注册时,django中的IntegrityError位于/accounts/signup
这是我的博客: 我正试图为我的django博客建立一个注册页面 我已完成模板/视图/表单/url的代码编写,并成功连接到以下页面: 所以我开始认为模板/url没有问题。但问题出现在尝试注册后,它说:Python 尝试注册时,django中的IntegrityError位于/accounts/signup,python,django,Python,Django,这是我的博客: 我正试图为我的django博客建立一个注册页面 我已完成模板/视图/表单/url的代码编写,并成功连接到以下页面: 所以我开始认为模板/url没有问题。但问题出现在尝试注册后,它说: IntegrityError at /accounts/signup UNIQUE constraint failed: auth_user.username 这是我的视图代码: def signup(request): if request.method == "POST":
IntegrityError at /accounts/signup
UNIQUE constraint failed: auth_user.username
这是我的视图代码:
def signup(request):
if request.method == "POST":
form = SignupForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
raw_password = form.cleaned_data.get('password')
user = User.objects.create_user(username=username, password=raw_password)
return redirect("post_list")
else:
form = SignupForm()
return render(request, 'registration/signup.html', {'form':form})
这是表格代码:
class SignupForm(forms.ModelForm):
class Meta:
model = User
fields = ('username','password',)
(我不是故意使用UserCreateForm的)
肯定没有重叠的其他用户,所以我为什么会看到此错误消息?复制用户的原因是django在保存表单时创建了用户。 当表单是ModelForm的子级时,保存它将创建与表单相关的模型类的新对象 只需删除或注释用于用户创建的代码行,即可正常工作:
def signup(request):
if request.method == "POST":
form = SignupForm(request.POST)
if form.is_valid():
user = form.save()
user.set_password(user.password)
user.save()
return redirect("post_list")
else:
form = SignupForm()
return render(request, 'registration/signup.html', {'form':form})
致以最诚挚的问候。谢谢,我删除了你说的几行,现在没有出现上面提到的错误消息。但是在注册后-在以刚创建的ID登录后,它显示“用户名和密码不匹配”。但它是由django shell制作的另一个ID。你能帮我吗?谢谢。保存表单后,请尝试设置用户密码。我已经编辑了答案以反映这些变化。