针对模型创建管理站点

之前已经定义了Post模型,通过读取模型元数据,同时提供针对编辑内容的产品接口,Django可自动构建管理站点。用户可直接对其加以使用,并配置模型的显示方式。

一、创建超级用户

python manage.py createsuperuser

二、Django管理站点

使用python manage.py runserver启动服务,并在浏览器中打开http://127.0.0.1:8000/admin/。

输入上面创建的超级用户账户密码,进入后台,如下所示:

Groups和Users模型表示为django.contrib.auth验证框架中的部分内容。

三、向管理站点中添加模型

admin.py文件,可在该文件中注册模型,并将其纳入Django管理站点中——使用Django管理站点为可选项。

方式一:默认显示方式

直接通过admin.site.register注册Post模型。

from django.contrib import admin
from .models import Post

# Register your models here.
admin.site.register(Post)

然后进入后台,可以看到Posts已经显示出来了。

并且有默认的列表显示方式,如下:

方式二:定制显示方式

通过@admin.register()装饰器来注册Post

from django.contrib import admin
from .models import Post

# Register your models here.
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    list_display = ('title', 'slug', 'author', 'publish', 'status')
    list_filter = ('status', 'created', 'publish', 'author')
    search_fields = ('title', 'body')
    prepopulated_fields = {'slug': ('title',)}
    raw_id_fields = ('author',)
    date_hierarchy = 'publish'
    ordering = ('status', 'publish')

这里,我们将通知Django管理站点,当前模型通过继承自ModelAdmin的自定义类在管理站点中注册。在该类中,可包含管理站点中与模型显示方式及其交互方式相关的信息。

此外,使用prepopulated_fileds属性,根据title字段输入结果预填充slug字段。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享