gpt4 book ai didi

python - Django 检查用户名是否已存在

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

这是我的 forms.py,

class RegistrationForm(UserCreationForm):

class Meta:
model = User
fields = [ 'username', 'first_name', 'password1', 'password2']

def save(self, commit=True):
user = super(RegistrationForm, self).save(commit=False)
user.first_name = self.cleaned_data['first_name']
if commit:
user.save()
return user

在views.py中,

def register(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
form.save()
username = request.POST.get('username')
password = request.POST.get('password1')
user = authenticate(username=username, password=password)
login(request, user)
return redirect(reverse('accounts:profile'))
else:
form = RegistrationForm()
return render(request, 'accounts/reg_form.html', {'form': form})

现在,如果我使用相同的用户名,则会引发错误,显示“ View accounts.views.register 没有返回 HttpResponse 对象。它返回 None ”。我该如何解决这个问题?

谢谢你:)

最佳答案

Django 表单默认为您执行此操作。

您不需要对此进行具体说明。因为,django 提供的默认 User 模型不接受重复的用户名。

可能存在一些缩进问题

def register(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
form.save()
. . . .
else:
form = RegistrationForm()
return render(request, 'accounts/reg_form.html', {'form': form})
#^^^^^Indentation here take return statement outside else

关于python - Django 检查用户名是否已存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46500409/

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