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。

转载于:https://www.cnblogs.com/helloxiaoyu/p/8559206.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值