Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django检查用户名是否已存在_Python_Django - Fatal编程技术网

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,我已经更新了答案,看一看。谢谢先生,工作非常好!