8.1 Templates过滤器:
1)定义
写在模板中,属于Django模板语言,可以修改模板中的变量,从而显示不同的内容。
2)如何使用
{{value |filter}}:
例:{{list_nums|length}}
过滤器可叠加:{{value|filter|filter2|…}}
例如:
如果我们删除掉if—else语句,那么此时新建文章的article_id为空串,而在view中新建文章的判断是由id==“0”进行的,所以尽管我们可以进入到新建文章界面但是无法提交新完成的文档。
因此,我们可以修改article_id的value
从而实现新旧博客的区分。
8.2 Django Shell
1)定义
是一个python的交互式命令行程序,它自动引入了我们的项目环境,可以使用它与项目进行交互。
2)使用:
python manage.py shell → from blog.models import Article → Article.objects.all()
3)作用
①可以使用Django shell 来进行调试工作
②测试未知方法
可以用于检验输出结果类型等。
8.3 Admin增强
1)概要
经过前面的设计,admin界面中blog管理已经可以显示Title了,但是这样显得过于单调:
2)步骤:
①创建admin配置类:
class ArticleAdmin(admin.ModelAdmin)
注册:admin.site.register(Article,ArticleAdmin),将Article和配置类绑定在一起。
②显示新字段:
list_display = ( ‘title’ , ‘content’ )就可以了,list_display同时支持tuple和list,但是字段名一定是字符串:
效果:
3)既然到了这里,不妨再添加一个发布日期:
①在admin.py中给Article添加新的发布日期属性:
pub_time = models.DateTimeField(auto_now = True)
②回到命令行:
移植:
③修改list_display:
即可:
注:如果想要自行调节时间,可以将auto_now=True 修改为null = True别忘记移植。
④过滤器:
在admin.py中添加list_filter = ( ‘pub_time’,):
即可: