单击侧边栏按钮时渲染Django块

时间:2016-08-25 11:38:35

标签: html django

我正在尝试使用Django创建一个管理网站。我已经掌握了基本功能,但我无法“动态”渲染内容。我想基于单击按钮来渲染块。

目前,我有一个员工视图,将某些事件对象呈现为树。我正在使用Django的mptt库来构建树。

employeeView

@method_decorator(login_required, name='dispatch')
class employeeView(View):

    def get(self, request, user_id):
        if request.user.is_authenticated():
            user=request.user
            nodes = Event.objects.filter(owner=user)


        return render(request, "employee_view.html", {'user': user, 'nodes': nodes})

employee_template.html

{% extends "base.html" %}

{% block content %}

<title>Your events</title>

  These are your events
  {% load mptt_tags %}
<ul>
    {% recursetree nodes %}
        <li>
            <b>{{ node.name }} </b>
            {% if not node.is_leaf_node %}
                <ul class="children">
                    {{ children }}
                </ul>
            {% endif %}
        </li>
    {% endrecursetree %}
</ul>
{% endblock %}

然后我有一个经理视图,它目前返回由经理管理的员工以及与他们相关的所有事件。

managerView

class managerView(View):

    @method_decorator(user_passes_test(lambda i: u.myuser.isManager))
    def get(self, request, user=None, myuser=None):
         if request.user.is_authenticated():
            user = request.user

             ...

         return render(request, "supervisor_view.html", {'user': user, 'employees': employees, "nodes": nodes,})

到目前为止,一切都按预期运作。托管员工将被提供给经理模板,并在侧栏上呈现。下面是我的经理模板的片段。它包含一个主视图块和一个侧边栏块。主视图当前为空,但默认情况下应显示员工的一些元数据。这很容易实现。当在侧栏上单击员工姓名时,我希望mainView块为员工提供“事件树”,即为点击其姓名的员工呈现员工模板。我该怎么做呢?

manager_template.html

{% extends "base.html" %}

{% block leftbarEmployees %}
<ul class="sidebar-menu">
    <li class="header">Your employees</li>
    {% for employee in employees %}
        <li><a href="#"><i class='fa fa-link'></i> <span>{{ employee }}</span></a></li>
    {% endfor %}
</ul>
{% endblock %}

{% block mainView %}
   <!-- the default mainView will just be some metadata gathered from
the passed nodes etc. -->     
{% endblock%}

我一直在阅读django关于如何执行此操作的文档,特别是有关包含标记的文档:https://docs.djangoproject.com/en/1.10/ref/templates/builtins/#include这是解决此问题的好方法吗?我有点不确定如何将名称被点击的员工的信息传递给包含标签

0 个答案:

没有答案