Python Django登录仅适用于注册用户,并在注销时返回登录页面

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"> {%

我已在我的项目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">
        {% 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',{})