[英]How do I show one page to logged-in user and another to a not-logged in user with Django?
I'm confident that this question has been asked before, but I can't find an answer here. 我相信这个问题已经被问过了,但是我在这里找不到答案。
The goal : show a user that isn't logged in a random assortment of posts but a user that is logged in all of their own posts. 目标 :显示未登录随机分类帖子的用户,但显示已登录其所有帖子的用户。
The two views from views.py: 来自views.py的两个视图:
def movement_random(request):
movements = Movement.objects.order_by('?')[:10]
return render(request, 'blog/movement_random.html', {'movements': movements})
@login_required
def movement_list(request):
movements = Movement.objects.filter(author=request.user).order_by('-moved_on')
return render(request, 'blog/movement_list.html', {'movements': movements})
From urls.py: 从urls.py:
from django.conf.urls import url, include from . 从django.conf.urls导入URL,包括from。 import views
导入视图
urlpatterns = [
url(r'^$', views.movement_random, name='index'),
url(r'^$', views.movement_list, name='movement_list'),
url(r'^movement/(?P<pk>\d+)/$', views.movement_detail, name='movement_detail'),
url(r'^movement/new/$', views.movement_new, name='movement_new'),
url(r'^movement/(?P<pk>\d+)/edit/$', views.movement_edit, name='movement_edit'),
url(r'^accounts/', include('registration.backends.hmac.urls')),
]
As it stand right now, the "homepage" for the app is, right now, always the first URL, even with a logged-in user. 就目前而言,该应用程序的“主页”始终是第一个URL,即使有登录用户也是如此。 How do I show the
views.movement_list
to a logged-in user while the views.movement_random
to a non-user? 如何将
views.movement_list
显示给已登录的用户,而如何将views.movement_random
给非用户?
It doesn't make sense to have two views, just set the movements dependant on whether you're authenticated in the single view 有两个视图没有任何意义,只需根据您是否在单个视图中通过身份验证来设置移动
if request.user.is_authenticated():
movements = Movement.objects.filter(author=request.user).order_by('-moved_on')
else:
movements = Movement.objects.order_by('?')[:10]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.