DJango:根据user.is_staff和request.user.is_authenticated()显示不同的主页

时间:2015-08-31 19:28:11

标签: python django django-views

这是我的简单主页视图,它位于员工的某个地方,其他一些用于登录用户,另一个用于其他用户:

def home(request):
    ipdb.set_trace()  ######### Break Point ###########

    if request.user.is_staff:
        redirect('quests:approvals')

    if request.user.is_authenticated():
        redirect('quests:quests')

    return render(request, "home.html", {})

但是,请求为空且没有信息:

ipdb> request
<WSGIRequest: GET '/'>

我做错了什么?

这只是我主要项目应用中的一个视图

我之前使用过:

@user_passes_test(lambda user: not user.get_username(), login_url='myUrl', redirect_field_name=None)
def home(request):
...

哪种方法很好,除非我无法找到如何去工作人员的其他地方。

1 个答案:

答案 0 :(得分:2)

看起来你忘记了return

if request.user.is_staff:
    return redirect('quests:approvals')

if request.user.is_authenticated():
    return redirect('quests:quests')