一、{% block content %} {% endblock %}的作用
在模板继承中使用,子模板中的{% block content %}与{% endblock %}之间的内容会覆盖父模板中的
{% block content %}与{% endblock %}之间的内容。
二、forloop.counter0|divisablely:2
含义:循环从0开始计数(默认从1开始计数),过滤器含义为可被2整除。一般用在循环条件判断中。
三、admin自定义界面
如图。分别实现了搜索、展示、过滤、分类、排序功能。
四、过滤条件采用正则匹配式
例子:Books.objects.filter( title__iregex = r ‘(P|p|O)’)
五、模型类之间外键多对多与一对多关系的用法
如上图:有以下几点总结:
- 多对多正向访问:已知Book对象时,可通过*.authors.values循环访问Author对象。
books=Book.objects.all()
for i in books:
for j in i.authors.values:
print j.first_name
2.多对多反向访问:已知Author对象时,可通过*.relate_name.all循环访问Book对象。
authors=Author.objects.all()
for i in authors:
for j in i.relate_name.all:
print j.title
(Notice:relate_name是在Book中的authors字段中定义的。
如:authors=models.ManyToManyField(Author,relate_name=‘Book_Author‘)
3.一对多的正向访问:已知Book对象时,可通过*.publisher.*直接访问Publisher对象。
books=Book.objects.all()
for i in books:
print i.publisher.name
4.一对多反向访问:已知Publisher对象时,可通过*.relate_name.*直接访问Book对象。
publishers=Publisher.objects.all()
for i in publishers:
print i.relate_name.title
(Notice:relate_name是在Book中的publisher字段中定义的。
如:publisher=models.ForeignKey(Publisher,relate_name=‘Book_Publisher‘)
六、Django debugtools调试工具
安装步骤:
- pip install django-debugtools
- 在setting.py中的INSTALLED_APPS中将‘debugtools’添加。
- 在模板页面可直接print后台传出的数据。
完。