繁体   English   中英

如何根据登录的用户在 django 模板中显示某些内容?

[英]How to display something in a django template according to which user is logged in?

我在 django 模板中显示一个表格,我有 2 个相同的模板,但有 2 个不同的表格。 我有 2 个不同的用户组。 我想根据用户所属的身份验证组显示不同的模板。 例如:

如果用户在 A 组中:渲染 template1.html 否则如果用户在 B 组中:渲染 template2.html

我现在所知道的是我使用了@login_required 装饰器,因此如果用户未登录,则不会显示视图。但这包括所有用户,而不是特定于组。

def home(request):
    ecv_count = Dossier.objects.filter(status_admin='ECV').count()
    v_count = Dossier.objects.filter(status_admin='V').count()
    r_count = Dossier.objects.filter(status_admin='R').count()
    c_count = Dossier.objects.filter(status_admin='C').count()
    context = {
        'dossiers': Dossier.objects.all(),
        'ecv_count': ecv_count,
        'v_count': v_count,
        'r_count': r_count,
        'c_count': c_count
    }

    return render(request, 'dashboard/home.html', context)

我想让视图检查用户组,并使用不同的上下文呈现不同的模板。

你可以这样检查:

def home(request):
    if request.user.groups.filter(name='some_group').exists():
        # do something ....
    else:
        #do somethig...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM