Django小试身手之管理页admin使用

高可扩展性
向后兼容
低耦合,高内聚

项目的入口:manage.py
项目的配置:test1
项目的开发:自定义应用

虚拟环境:workon,mkvirtualenv,rmvirtualenv,deactivate
    pip list,pip install
django的命令:django-admin startproject
    python manage.py startapp
    python manage.py makemigrations
    python manage.py migrate
    python manage.py runserver
    python manage.py createsuperuser
admin的使用admin.py
    admin.site.register(模型类,admin类)
 

from django.contrib import admin

# Register your models here.
from django.contrib import admin
from models import *
#python3  .from models import *

class HeroInfoInline(admin.TabularInline):
    model = HeroInfo
    extra = 3

class BookInfoAdmin(admin.ModelAdmin):
    list_display = ['id','btitle','bpub_date']
    list_filter = ['btitle']
    search_fields = ['btitle']
    list_per_page = 10
    fieldsets = [
        ('base',{'fields':['btitle']}),
        ('super',{'fields':['bpub_date']})
    ]
    inlines = [HeroInfoInline]



admin.site.register(BookInfo,Boo

代码对应的页面如下图

自定义管理页面

  • Django提供了admin.ModelAdmin类
  • 通过定义ModelAdmin的子类,来定义模型在Admin界面的显示方式
class QuestionAdmin(admin.ModelAdmin):
    ...
admin.site.register(Question, QuestionAdmin)

列表页属性

  • list_display:显示字段,可以点击列头进行排序,先后顺序决定显示顺序,对应显示2,每列可以排序,有一个小眼睛决定排序功能是否可用。
list_display = ['pk', 'btitle', 'bpub_date']
  • list_filter:过滤字段,过滤框会出现在右侧,对应1,按照列中的值筛选
list_filter = ['btitle']
  • search_fields:搜索字段,搜索框会出现在上侧,对应2,按照关键字对指定列查找关键字
search_fields = ['btitle']
  • list_per_page:分页,分页框会出现在下侧,对应4,设置每一页显示多少条数据
list_per_page = 10

添加、修改页属性  

  • fields:属性的先后顺序  
fields = ['bpub_date', 'btitle']
  • fieldsets:属性分组
fieldsets = [
    ('basic',{'fields': ['btitle']}),
    ('more', {'fields': ['bpub_date']}),
]

 列表页面展示

 修改页面展示

扫描二维码关注公众号,回复: 9444554 查看本文章

 添加页面展示

 内嵌表格,显示如下图。

class HeroInfoInline(admin.StackedInline):
    model = HeroInfo
    extra = 3

 内嵌改为页表格,显示如下图。

class HeroInfoInline(admin.TabularInline)

发布了124 篇原创文章 · 获赞 415 · 访问量 55万+

猜你喜欢

转载自blog.csdn.net/m0_37870649/article/details/104357904