2018-01-08

django shell

django的交互式命令行程序。命令行中:python manage.py shell,然后
from blog.modelsimport Article
Article.object.all()
可以查看数据库的内容
也可以用来调试、测试未知方法。比如Article.object.all().values()不知道干嘛用,输入到shell里会显示出一个字典,,包含着所有变量和值。

admin加强

admin的功能很强大,再学两个。第一个是在标题后边再加一栏显示文章内容或其他字段。修改admin.py:

from django.contrib import admin
from blog.models import Article
# Register your models here.
class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title','content')
admin.site.register(Article,ArticleAdmin)

其中list_display里的是显示的字段支持list和tuple(tuple只有1个元素也需要写逗号),需要为字符串,而且与models里的Article类保持一致。现在再来添加个更新日期,需要在Article类里新增这个字段。models.py里:


from django.db import models

# Create your models here.

class Article(models.Model):
    title = models.CharField(max_length=32,default='Title') 
    #此处max_length=32为必须输入的参数
    content= models.TextField(null=True)
    #CharField和TextField被称为字段。CharField一般用来做标题,TextField一般用来做文章内容。
    #其他字段和参数可去django官方文档中看
    pub_time = models.DateTimeField(auto_now=True)
    def __str__(self):
        return self.title

每次更改models.py都需要shell里数据迁移。
python manage.py makemigrations
python manage.py migrate
新增了 pub_time = models.DateTimeField(auto_now=True)字段
如果想要在admin里修改它,则 pub_time = models.DateTimeField(null=True)
还有个功能,admin过滤器,admin.py:

from django.contrib import admin
from blog.models import Article
# Register your models here.
class ArticleAdmin(admin.ModelAdmin):
   list_display = ('title','content','pub_time')
   list_filter = ('pub_time',)
admin.site.register(Article,ArticleAdmin)

这样admin里能按日期筛选文章了。

你可能感兴趣的:(2018-01-08)