在视图结果中使用模板中的组过滤器

时间:2016-01-17 08:31:56

标签: python django django-views

我在Django视图中返回user.group.filter True结果。

在我的索引页面上,我想根据用户组限制内容。我使用以下方法完成了此操作:

views.py

def index(request):
    template_name = "index/index.html"
    is_teamleader = request.user.groups.filter(name='TL').exists()
    is_employee = request.user.groups.filter(name='Employee').exists()
    context = {}
    return render_to_response(template_name, request, RequestContext(request))

然后在我的index.html页面中使用以下内容:

{% if is_teamleader %}
    <div id="side">
      <div id="sticky-sidebar">
        <h2> Links</h2>
        <div id="sidecontent2" class="cf"><a href="/Form"><span>Form</span></a>
        </div>
      <!-- <div id="sidecontent3" class="cf"><span>Sticky Widget</span></div> -->
      </div>
    </div>
{% elif is_employee %}
    <div id="side">
      <div id="sticky-sidebar">
        <h2> Links</h2>
        <div id="sidecontent"><span>Youre an Employee!</span>
        </div>
      </div>
    </div>
{% else %}
    <div id="side">
      <div id="sticky-sidebar">
        <h2> Links</h2>
        <div id="sidecontent"><span>No Link Access</span>
        </div>
      </div>
    </div>
{% endif %}

尽管我做了哪些更改,但这会导致“其他&#39;声明,无论用户在哪个群组。

我是否需要在render_to_response添加内容才能使其正常工作?

1 个答案:

答案 0 :(得分:2)

你忘了渲染上下文

你需要:

def index(request):
    template_name = "index/index.html"
    is_teamleader = request.user.groups.filter(name='TL').exists()
    is_employee = request.user.groups.filter(name='Employee').exists()
    context = {
       'is_teamleader': is_teamleader,
       'is_employee': is_employee
    }
    return render(request, template_name, context)