django 通用视图加载动态页问题

apple8160 2016-08-05 10:47:15

base.html #通用视图,分为左右两部分
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>{% block title %}aaaaa{% endblock %}</title>
<link rel="stylesheet" type="text/css" href="/static/script/bootstrap/css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="/static/css/Style.css">
<script type="text/javascript" src="/static/script/jquery-1.11.1.js"></script>
<script type="text/javascript" src="/static/script/bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<div class="body-content">
<div class="left-content">
<div class="logoDiv">控制面板</div>
{% include 'home/leftmenu.html' %}#左侧加载菜单

</div>
<div class="right-content">
{% block content %}右侧内容
{% endblock %}
</div>
</div>
</body>
</html>

右侧内容没问题

左侧页面是需动态加载的,每个用户加载的菜单不同
用include只能加载静态模板

用什么方法可以加载动态
单独访问菜单页路径 /leftmenu
...全文
513 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
georgema1982 2016-08-19
  • 打赏
  • 举报
回复
你完全可以用一个menu模板,根据django的permission框架显示不同的菜单项。难道你还要让不同的menu的风格也不同? include可以接收一个变量作为模板名的,所以即使你要用不同的menu模板,也完全在view里返回不同的模板名。所以我完全不明白你在纠结session什么的干什么
apple8160 2016-08-16
  • 打赏
  • 举报
回复
引用 3 楼 georgema1982 的回复:
什么叫include只能加载静态模板?你传一个模板名变量给include不就实现动态了吗? 另外不同用户加载不同的menu在我看来是一个有问题的设计
因为后台需要权限分配 所以菜单会有所不同 路由/leftmenu会获取当前登录的session 来显示不同的菜单 但是include直接展示模板上的内容 无法访问路由也无法获得session 如果我访问/index页面 那么在index函数里 把session发送到模板上 那么菜单母版能获取到该变量
georgema1982 2016-08-12
  • 打赏
  • 举报
回复
什么叫include只能加载静态模板?你传一个模板名变量给include不就实现动态了吗? 另外不同用户加载不同的menu在我看来是一个有问题的设计
apple8160 2016-08-08
  • 打赏
  • 举报
回复
没有人来解答一下么
nieoding 2016-08-08
  • 打赏
  • 举报
回复

...
<span style="color: #FF0000;">
    {% with template_name=user.id|stringformat:"s"|add:".html" %}
         {% include "home/leftmenu_"|add:template_name %}
    {% endwith %}
</span>
...

37,737

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧