Python Django登录仅适用于注册用户,并在注销时返回登录页面
我已在我的项目URL.py中创建了登录视图Python Django登录仅适用于注册用户,并在注销时返回登录页面,python,login,django-urls,logout,django-2.0,Python,Login,Django Urls,Logout,Django 2.0,我已在我的项目URL.py中创建了登录视图 urlpatterns = [ path('login/', views.LoginView.as_view(template_name='login.html'), name='login'), ] login.html <div class="container"> <h2>Login</h2> <form action="\" method="post"> {%
urlpatterns = [
path('login/', views.LoginView.as_view(template_name='login.html'), name='login'),
]
login.html
<div class="container">
<h2>Login</h2>
<form action="\" method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Login</button>
</form>
</div>
登录
{%csrf_令牌%}
{{form.as_p}}
登录
在这里,它工作良好,我可以看到登录页面,并登录到它。但现在我可以使用任何匿名凭据登录,他们可以看到主页。
所以,我如何将其限制为注册用户,然后将其注销。当您将路径('login/')…
内容添加到URL.py
时,它不会访问主页。您需要通过添加到视图中来明确禁止访问主页:
from django.contrib.auth.decorators import login_required
@login_required
def my_view(request):
...
或者您可以使用基于类的视图。或者作为另一个选项,您可以使用包。我在每个视图之前都添加了该装饰程序,但问题是我可以使用任意随机用户名和密码登录,然后将其注销。@login_required(login_url='/login')def home_视图(request,*args,**kwargs):返回render(request,'home.html',{})