看我多久能学会Django(六):Django后台

与后台相关的文件:每个app中的admin.py文件与后台相关

下面是一个可以在后台添加博客的栗子:

第一步:新建一个 zjyd_admin项目

django-admin startproject zjyd_admin

第二步:创建一个blog的app

python manage.py startapp blog

第三步:讲blog加入到settings.py中的INSTALLED_APPS中

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    
    'blog',
]

第四步:修改blog文件夹中的models.py

from django.db import models

# Create your models here.
class Article(models.Model):
    title = models.CharField(u'标题',max_length=256)
    content = models.TextField(u'内容')

    pub_date = models.DateTimeField(u'发表时间', auto_now_add=True, editable=True)
    update_time = models.DateTimeField(u'更新时间', auto_now=True, null=True)
 

第五步:同步所有的数据表

# 进入包含有 manage.py 的文件夹
python manage.py makemigrations
python manage.py migrate

第六步:修改admin.py
进入 blog 文件夹,修改 admin.py 文件(如果没有新建一个),内容如下

from django.contrib import admin
from .models import Article
# Register your models here.

admin.site.register(Article)

只需要这三行代码,我们就可以拥有一个强大的后台!

提示:urls.py中关于 admin的已经默认开启

urlpatterns = [
    url(r'^admin/', admin.site.urls),
]

第七步:打开服务器

python manage.py runserver
# 如果提示 8000 端口已经被占用,可以用 python manage.py runserver 8001 以此类推

访问 http://localhost:8000/admin/ 可以看到:

Paste_Image.png

输入账号密码:

Paste_Image.png

点击 Articles,动手输入 添加几篇文章,就可以看到:


Paste_Image.png

我们会发现所有的文章都是叫 Article object,这需要我们修改下blog中的models.py:

from django.db import models

# Create your models here.
class Article(models.Model):
    title = models.CharField(u'标题',max_length=256)
    content = models.TextField(u'内容')

    pub_date = models.DateTimeField(u'发表时间', auto_now_add=True, editable=True)
    update_time = models.DateTimeField(u'更新时间', auto_now=True, null=True)

    def __str__(self):   #新增
        return self.title   #这两句

我们新增了一个 str 函数,用于返回文章标题。刷新页面,结果:

Paste_Image.png

所以推荐在定义Model的时候,写一个 str函数。

八,在列表显示与字段相关的其它内容
如果我们还想显示一些其他的字段:

from django.contrib import admin
from .models import Article
# Register your models here.

class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title','pub_date','update_time',)

admin.site.register(Article,ArticleAdmin)

结果:


Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容