Python Django 2.1.4登记表+;登录页面

Python Django 2.1.4登记表+;登录页面,python,django,Python,Django,嗨,我是Django的新手,需要注册表格和登录的帮助。我能够注册,并能够看到在管理员注册模式下注册的用户凭据。但是,我试图获取数据库中的用户凭据,然后想进行登录,但无法进行登录。有人能帮忙吗 models.py class register(models.Model): name = models.CharField(max_length=250) username = models.CharField(max_length=20) password = models.C

嗨,我是Django的新手,需要注册表格和登录的帮助。我能够注册,并能够看到在管理员注册模式下注册的用户凭据。但是,我试图获取数据库中的用户凭据,然后想进行登录,但无法进行登录。有人能帮忙吗

models.py

class register(models.Model):
    name = models.CharField(max_length=250)
    username = models.CharField(max_length=20)
    password = models.CharField(max_length=20)
    occupation = models.CharField(max_length=100)

    def __unicode__(self):
        return str(self.username)
Views.py

#register 
def registerForm(request):
        if request.method == 'POST':
            if request.POST.get('name') and request.POST.get('username') and request.POST.get('password') and request.POST.get('occupation'):
                reg = register()
                reg.name = request.POST['name']
                reg.username = request.POST['username']
                reg.password = request.POST['password']
                reg.occupation = request.POST['occupation']
                reg.save()

            return render(request, 'login.html')
        else:
            return render(request, 'register.html')
#Login
def Login(request):
    if request.method == 'POST':
        if request.POST.get('username') and request.POST.get('password'):
            usr_login = register()
            usr_login.username = request.POST['username']
            usr_login.password = request.POST['password']
            usr_login.user = authenticate(username=username, password=password)
            if usr_login.user:
                login(request, usr_login.user)
                return HttpResponseRedirect('/forum/')
            else:
                error = "Username and Password are invalid. Please try again."
                return render(request, 'login.html')
    else:
        return render(request, 'login.html')
login.html

<form method="post" action="/forum/">
                          {% csrf_token %}
                             <div class="form-group">
                                <label for="username">Username:</label>
                                <input type="username" class="form-control" id="username" placeholder="Enter username" required="required">
                             </div>

                             <div class="form-group">
                                <label for="pwd">Password:</label>
                                <input type="password" class="form-control" id="pwd" placeholder="Enter password" required="required">
                             </div>
                             <div class="row">
                              <div class="col" align="center">
                                 <div class="form-group form-check">
                                    <label class="form-check-label">
                                      <input class="form-check-input" type="checkbox"> Remember me
                                    </label>
                                 </div>
                                    <button type="submit" class="btn btn-primary" value="login">Submit</button><br><br>
                                    Not yet registered? <a href="/registeration/">Register Here.</a>
                     </form>

您正在尝试使用django内置身份验证后端对用户进行身份验证,但未使用django用户模型。在您的情况下,您必须创建自定义身份验证逻辑。我强烈建议您对用户的密码进行哈希运算


如果要使用内置身份验证框架,请查看文档以了解更多信息

是否可以不使用django内置身份验证后端,只创建一个新的简单模型来存储和使用登录页面的用户凭据?是的。您只需要定义自己的身份验证方法。因为我想要一些简单的东西,所以我尝试阅读django文档,但无法理解。我为注册创建了一个模型,一旦用户单击注册表单页面上的提交按钮,我就将其存储到数据库中。但是,从这里如何实现登录功能?
def custom\u login(用户名、密码):try:return register.objects.get(username=username,password=password),register除外。DoesNotExists:return False
我不建议您使用自己的登录,因为您将不得不编写很多样板代码。您必须自己管理会话,创建授权机制等。。。如果你真的想要定制用户模型,只需使用django方式即可。非常感谢你,我成功实现了内置身份验证!!
# login
url(r'^login/$', views.Login, name='login'),

# register
url(r'^registeration/$', views.registerForm, name='registeration'),