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