国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

Django模板(Template)中的循環(for)嵌套

2024-04-27 15:19:23
字體:
來源:轉載
供稿:網友

在寫網頁的時候,我們經常需要用到二級菜單,如下圖: 這里寫圖片描述 “文章分類”作為第一級,隨后跟著是該類下的二級鏈接。結合CSS樣式及js還可以實現手風琴折疊的效果。 這里寫圖片描述

操作

假設讀者的知識基礎 1、初學HTML 2、初識Django的模板(Template)及模型(models) 首先我們通過models.py為菜單鏈接建立數據庫

from __future__ import unicode_literalsfrom django.contrib import adminfrom django.db import modelsfrom django.contrib.auth.models import Groupclass left(models.Model): link_id=models.AutoField(PRimary_key=True,unique=True) label=models.CharField(max_length=10,default="link") link=models.CharField(max_length=200,default="") pic=models.ImageField(upload_to="static/images/",blank=True) authlevel=models.ManyToManyField(Group,blank=True) #權限信息,根據權限顯示菜單內容 parent_id=models.ForeignKey('self',blank=True,null=True,verbose_name=u"父菜單") #外聯鍵鏈接的是自己 CHOICES=(("P",u"父菜單"),("S",u"子菜單")) menulevel=models.CharField(max_length=2,verbose_name=u"菜單級別",choices=CHOICES) def __unicode__(self): return self.label #在admin界面顯示label

隨后在admin.py注冊left類。

from models import leftadmin.site.register([left])

在admin的頁面里輸入幾個關聯頁面,我這里輸入的則是

用戶管理人力資源->考核工藝管理訂單信息

在寫模板時,我先寫第一級菜單的循環,通過判斷其級別(“menulevel”)是否為父親(“P”),決定渲染其第一級菜單。在渲染第二級菜單時,就需要用到一個神奇的標識符(“_set.all”),它可以實現在第一級節點下對子節點遍歷。

<ul> {% for item in menus %} {% if item.menulevel == "P" %} <div id="link"> <li> <a href="{{item.link}}">{{item.label}}</a> </li> {% endif %} {% for sub_item in item.left_set.all %} <div id="sub_link"> <li> <a href="{{sub_item.link}}">{{sub_item.label}}</a> </li> </div> {% endfor %} </div> {% endfor %}</ul>

效果

為了區別,我在css樣式里對sub_menu 設定了#sub_menu{font-size:14px} 這里寫圖片描述

參考資料

lanlandechong的專欄 django模板之循環嵌套 http://blog.csdn.net/lanlandechong/article/details/7690396


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建阳市| 北海市| 宁夏| 滦南县| 潼关县| 凉城县| 潜江市| 永善县| 湖北省| 阿拉善右旗| 岢岚县| 合阳县| 南昌县| 亳州市| 沙田区| 江阴市| 武鸣县| 梁河县| 乌海市| 英德市| 西昌市| 凯里市| 吴旗县| 定日县| 天峨县| 乌审旗| 南木林县| 九龙坡区| 沽源县| 上思县| 祥云县| 武宣县| 潼关县| 遵化市| 庆元县| 满洲里市| 额敏县| 寻乌县| 墨江| 桂平市| 建阳市|