提供额外的上下文变量-libmodbus源码解析

时间:2024-07-14 01:47:23
【文件属性】:

文件名称:提供额外的上下文变量-libmodbus源码解析

文件大小:7.37MB

文件格式:PDF

更新时间:2024-07-14 01:47:23

PDF

10.2提供“友好的”模板上下文 你可能注意到了,上述出版社列表模板示例把所有出版社存储在一个名为 object_list的变量中。这样虽然 可行,但是对模板编写人不够友好,他们想知道的是处理的是出版社。 如果处理的是模型对象,Django 已经为你提供了这样一个变量。处理对象或查询集合时,Django 将向上下文 中添加一个以模型类名小写形式命名的变量。这个变量与 object_list同时存在,不过所含的数据完全相 同。这里,变量名为 publisher_list。 如果这还不够,可以自行设定上下文变量的名称。通用视图的 context_object_name属性用于指定要使用的上 下文变量名: # views.py from django.views.generic import ListView from books.models import Publisher class PublisherList(ListView): model = Publisher context_object_name = 'my_favorite_publishers' 为 context_object_name设定一个友好的值总是好的,设计模板的同事会感谢你的。 10.3提供额外的上下文变量 通常,除了通用视图提供的信息之外,还想显示一些额外信息。例如,在各个出版社的详细信息页面显示出 版的图书列表。DetailView通用视图在上下文中提供了出版社信息,但是如何在模板中获取额外的信息呢? 答案是扩展 DetailView,自己实现 get_context_data方法。默认的实现只为模板提供该显示的对象,不过可 以覆盖,提供更多信息: from django.views.generic import DetailView from books.models import Publisher, Book class PublisherDetail(DetailView): model = Publisher def get_context_data(self, **kwargs): # 先调用原来的实现,获取上下文 context = super(PublisherDetail, self).get_context_data(**kwargs) # 把所有图书构成的查询集合添加到上下文中 context['book_list'] = Book.objects.all() return context 10.2 提供“友好的”模板上下文 - 151


网友评论