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里能按日期篩選文章了。