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

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容