我有一个名为django_swing的项目。在这个项目中,我有2个不同的应用程序。一个是界面,另一个是用户。在url .py的djjango_swing文件夹中,我有以下内容:
path('login/', auth_views.LoginView.as_view(template_name='users/login.html'), name='login'),
在login.html中,我有以下内容:
<form action="#">
<div class="form-group">
<label for="username">Username</label>
<input class="form-control" type="text" id="username" required="" placeholder="Enter username">
</div>
<div class="form-group">
<a href="pages-recoverpw.html" class="text-muted float-right"><small>Forgot your password?</small></a>
<label for="password">Password</label>
<div class="input-group input-group-merge">
<input type="password" id="password" class="form-control" placeholder="Enter password">
<div class="input-group-append" data-password="false">
<div class="input-group-text">
<span class="password-eye"></span>
</div>
</div>
</div>
</div>
<div class="form-group mb-3">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="checkbox-signin" checked>
<label class="custom-control-label" for="checkbox-signin">Remember me</label>
</div>
</div>
<div class="form-group mb-0 text-center">
<button class="btn btn-primary" type="submit"> Log In </button>
</div>
</form>
在url .py的接口文件夹中,我有以下内容:
path('', views.home, name='interface-home'),
在views.py的接口文件夹中,我有以下内容:
def home(request):
return render(request, 'interface/home.html', {'title':'Home'} )
我有home.html的文件。因为太长了,我不能粘贴在这里。当我运行项目时,127.0.0.1加载home.html页面。
最后,在settings.py的djjango_swing文件夹中,在文件底部有以下内容:
STATIC_URL = '/static/'
LOGIN_REDIRECT_URL='interface-home'
LOGIN_URL = 'login'
但是,当我访问127.0.0.1/login
并键入我刚刚创建的帐户,然后按下登录按钮时,页面刷新为相同的登录页面,url变为http://127.0.0.1:8000/login/?#
。它没有像settings.py中声明的那样跳转到interface-home
。谁能告诉我如何解决这个问题?这方面我还是个初学者。非常感谢!
编辑后指出的错误,我点击登录,得到这个页面没有找到login/post
的错误
为什么呢?
你的模板有几个问题
你的表单方法需要是" POST ",登录视图期待POST请求,你不应该在action
属性中传递任何东西
<form method="post">
您还需要提供"name"参数,以便它们的值以该名称
提交<input id="username" name="username" ... >
<input id="password" name="password" ... >