| 通常在写网页的菜单的时候采用的都是统一的导航栏。需要一个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。
 |