在用户登录之前和之后,许多网站都不会更改URL . 我应该如何在Django中实现它?例如,http://example.com(显示登录页面)→登录→http://example.com(显示内容列表)
我想使用基于类的视图登录页面(auth_views.LoginView),然后在用户登录后,使用通用列表视图和不同的模板 .
urls.py
from django.contrib.auth import views as auth_views
urlpatterns = [
path('', auth_views.LoginView.as_view(template_name='index.html'), name='index'),
views.py
from django.views.generic import ListView
class UserIndexView(ListView):
model = mymodel
template_name = 'user_index.html'
1 回答
每个网址只能由一个视图提供 . 在同一视图上处理多个操作(显示索引页面和处理登录)会使其更复杂 .
在Django中,通常的方法是使用单独的URL进行登录 .
然后,您可以使用LoginRequiredMixin . 匿名用户将从主页重定向到登录页面,然后在登录后重定向回主页 .