首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django重定向不是重定向

Django重定向不是重定向
EN

Stack Overflow用户
提问于 2021-04-19 13:04:50
回答 1查看 602关注 0票数 1

我是Django新手,我使用的不是Django表单,而是使用了我创建的用户模型的捕鼠器表单,在授予用户仪表板访问权限之前,我必须检查登录详细信息。

这是密码

代码语言:javascript
复制
def login (request):
   if request.method=="POST":
      email=request.POST.get('email')
      password=request.POST.get('password')
      user=authenticate (request,email=email, password=password)
      if user is not None:
        login(request,user)
        return redirect ('/dashboard')

      else:
        context="Provide Valid Credentials"
        return render(request."login.html",context)

即使数据存在于用户模型中,打印(用户)也不会给出任何值。

URLs.py

代码语言:javascript
复制
from django.contrib import admin
from django.urls import path, include
from start_app.views import login

urlpatterns =[
path('login/',login)
path('dashboard/', dashboard)
]

login.html

代码语言:javascript
复制
<form  method="POST" >
{% csrf_token %}
    <div class="form-floating">
      <input type="email" class="form-control" id="floatingInput" name="email" placeholder="name@example.com">
      <label for="floatingInput">Email address</label>
    </div>
    <div class="form-floating">
      <input type="password" class="form-control" id="floatingPassword" name="password" placeholder="Password">
      <label for="floatingPassword">Password</label>
    </div>

    <div class="checkbox mb-3">
      <label>
        <input type="checkbox" value="remember-me"> Remember me
      </label>
    </div>
    <button class="w-100 btn btn-lg btn-primary" type="submit">Sign in</button>
</form>

这不是把我转到仪表盘上。

请忽略缩进,因为我无法在这里完成它,

有什么建议会很感激吗?

EN

回答 1

Stack Overflow用户

发布于 2021-04-19 18:04:18

问题来自于您的login.html。您应该在表单字段中包含name属性。这就是Django在调用request.POST.get()时试图获取的内容。所以你应该把你的html代码编辑成这样的东西。

代码语言:javascript
复制
<form  method="POST">
{% csrf_token %}
<div class="form-floating">
  <input type="email" class="form-control" id="floatingInput" placeholder="name@example.com" name="email">
  <label for="floatingInput">Email address</label>
</div>
<div class="form-floating">
  <input type="password" class="form-control" id="floatingPassword" placeholder="Password" name="password>
  <label for="floatingPassword">Password</label>
</div>

<div class="checkbox mb-3">
  <label>
    <input type="checkbox" value="remember-me"> Remember me
  </label>
</div>
<button class="w-100 btn btn-lg btn-primary" type="submit">Sign in</button>

然后在urls.py中尝试并包含name参数。

在您的urls.py文件中,您可以这样做。

代码语言:javascript
复制
path('dashboard/', dashboard, name="dashboard")
path("login/", login, name="login")

还编辑您的views.py文件。不要使用request.POST.get(),而是使用request.POST['attribute name']

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67162578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档