Django笔记7(通用视图)
来源:互联网 发布:知乎一小时第三季mobi 编辑:程序博客网 时间:2024/06/05 11:00
1. 一个呈现静态“关于”页面的URLconf
from django.conf.urls.defaults import *from django.views.generic.simple import direct_to_templateurlpatterns = patterns('', ('^about/$', direct_to_template, { 'template': 'about.html' }))
注意:页面有中文,模板文件请使用UTF-8编码
2. 在我们自己的视图中重用它
from django.conf.urls.defaults importfrom django.views.generic.simple import direct_to_templatefrom mysite.views import *urlpatterns = patterns('', ('^about/$', direct_to_template, { 'template': 'about.html' }), ('^about/(\w+)/$', about_pages),)
from django.http import Http404from django.template import TemplateDoesNotExistfrom django.views.generic.simple import direct_to_templatedef about_pages(request, page): try: return direct_to_template(request, template="about/%s.html" % page) except TemplateDoesNotExist: raise Http404()
3. 对象的通用视图
from django.views.generic import list_detailfrom mysite.books.models import *publisher_info = { "queryset" : Publisher.objects.all(), "template_object_name" : "publisher", "template_name" : "books/publisher_list.html", "extra_context" : {"book_list" : Book.objects.all()}}urlpatterns = patterns('', (r'^publishers/$', list_detail.object_list, publisher_info))
{% extends "base.html" %}{% block content %}Publishers
- {% for publisher in publisher_list %}
- {{ publisher.name }} {% endfor %}
注意publisher_info各参数的默认值,template_object_name默认为object_list,template_name默认为books/publisher_list.html,注意结果的缓存问题
4. 显示某个出版商的所有书籍
urlpatterns = patterns('', (r'^publishers/$', list_detail.object_list, publisher_info), (r'^books/(\w+)/$', books_by_publisher),)
from django.views.generic import list_detailfrom mysite.books.models import *def books_by_publisher(request, name): # Look up the publisher (and raise a 404 if it can't be found). try: publisher = Publisher.objects.get(name__iexact=name) except Publisher.DoesNotExist: raise Http404 # Use the object_list view for the heavy lifting. return list_detail.object_list( request, queryset = Book.objects.filter(publisher=publisher), template_name = "books/books_by_publisher.html", template_object_name = "books", extra_context = {"publisher" : publisher} )
{% extends "base.html" %}{% block content %}{{publisher.name}} Book List
- {% for book in books_list %}
- {{ book.title }} {% endfor %}
- Django笔记7(通用视图)
- 【django 学习笔记】10-通用视图
- Django笔记 自定义ListView通用视图
- django 通用视图
- Django 通用视图
- django的通用视图
- Django 通用视图
- Django 通用视图
- Django通用视图讲解
- Django学习笔记之:【通用视图 (generic views) 】
- django 创建一个通用视图
- django通用视图的使用
- Django View.py通用视图
- django使用通用视图 django.views.generic
- 千与千寻django(六)---通用视图(Generic views)
- Python Django进阶教程(四)(通用视图)
- django通用视图(视图类)的login登陆、权限限定
- django的通用视图 (generic views)
- 学习linux字符设备驱动心得
- Django form模块使用心得
- Django笔记13(部署Django)
- ping不了
- Best practices for SIP NAT traversal
- Django笔记7(通用视图)
- QTP调用API实例集
- 高精度模板
- Django笔记8(模板引擎)
- Ubuntu11.10 安装 Google Chrome
- screen命令
- 关于团队合作
- nagios 限制报警次数
- Acquia Drupal