django解決其他頁面繼承不了base模板的動態數據的問題


通常在寫網頁的菜單的時候采用的都是統一的導航欄。需要一個base頁面,其他頁面就繼承base頁面。base頁面中的導航條是從數據庫中獲取。通過djano渲染到base頁面。但是其他頁面直接繼承base頁面是獲取不到導航條的動態數據的。采用重寫render的方法解決這個問題。

1.在django的項目的中新建一個py文件,創建一個工具類。

   from django.shortcuts import render

   from net import models #從app中導入數據庫

class RenderWrite(object): #新建一個工具類
def render_template(request, template_name, context=None, content_type=None, status=None, using=None):
p_list = []
c_list = []
cate = models.OdooCategory.objects.all()
for c in cate:
data = {
'name': c.name,
'id': c.id
}
pro = models.OdooProducts.objects.filter(odoocategory=c.id)
for p in pro:
p_list.append(p)
c_list.append(data)
if isinstance(context, dict):
context["c_list"] = c_list #需要的菜單列表
context['p_list'] = p_list
else:
context = {
"c_list": c_list,
'p_list':p_list
}
return render(
request=request,
template_name=template_name,
context=context,
content_type=content_type,
status=status,
using=using
)
2.在views中引入,將render代替為render_template。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM