Python Django检查用户名是否已存在
这是我的表格Python Django检查用户名是否已存在,python,django,Python,Django,这是我的表格 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)
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
表单已经为您执行了此操作。@DanielRoseman先生,我如何修复此错误“视图accounts.views.register没有返回HttpResponse对象,而是返回了None。”将最后一行取消一级。先生,我如何修复此错误“视图accounts.views.register没有返回HttpResponse对象,而是返回了None。”发布完整的
视图.py
。先生,刚刚发布Question@ShivamKumarDodval,我已经更新了答案,看一看。谢谢先生,工作非常好!