Django的站点管理
创建超级管理员命令(密码要8位)
python manage.py createsuperuser
进入站点管理
注册模型类
from django.contrib import admin # Register your models here. from django.contrib import admin from django_test.models import GameInfo admin.site.register(GameInfo)
运行结果(可以直接在站点管理添加数据)
admin.py代码
from django.contrib import admin # Register your models here. from django.contrib import admin from django_test.models import GameInfo # 第一种自定义的站点管理的方法 # class GameInfoAdmin(admin.ModelAdmin): # list_per_page = 2 # # # 注册自定义的站点管理类 # admin.site.register(GameInfo, GameInfoAdmin) # 装饰器的自定义站点管理方法 @admin.register(GameInfo) class GameInfoAdmin(admin.ModelAdmin): list_per_page = 2
分页
list_per_page = 2
设置顶部和底部显示
actions_on_top = True
actions_on_bottom = True
自定义显示地段
list_display = ['id', 'gtitle', 'game_date','game_download']
右侧栏过滤器
list_filter = ['id','gtitle']
搜索框
search_fields = ['id']
调整页面的编辑展示
fields = ['gtitle','game_date']
分组显示
fieldsets = ( ('基本', {'fields': ['gtitle', 'game_date']}), ('高级', { 'fields': ['game_download', 'gcommnet'], 'classes': ('collapse',) # 是否折叠显示 }) )
关联对象
admin.py中创建一个HeroInfoInline类
class HeroInfoInline(admin.StackedInline):
# 要编辑的对象 model = HeroInfo
# 要附加的编辑数量 extra = 1
admin.py中的GameInfoAdmin类添加
inlines = [HeroInfoInline]
运行结果
可以用表格的形式嵌入
class HeroInfoInline(admin.TabularInline): model = HeroInfo extra = 1
运行结果
调整站点信息
- admin.site.site_header 设置网站页头
- admin.site.site_title 设置页面标题
- admin.site.index_title 设置首页标语
admin.site.site_header = '游戏中心' admin.site.site_title = 'tx游戏' admin.site.index_title = '欢迎来到tx游戏'
运行结果
每个应用设置独立的名字
在apps.py中设置应用设置的名字
代码
from django.apps import AppConfig class DjangoTestConfig(AppConfig): name = 'django_test' verbose_name = '游戏中心'
运行结果
admin.py代码
from django.contrib import admin # Register your models here. from django.contrib import admin from django_test.models import GameInfo,HeroInfo # 第一种自定义的站点管理的方法 # class GameInfoAdmin(admin.ModelAdmin): # list_per_page = 2 # # # 注册自定义的站点管理类 # admin.site.register(GameInfo, GameInfoAdmin) class HeroInfoInline(admin.TabularInline): model = HeroInfo extra = 1 # 装饰器的自定义站点管理方法 @admin.register(GameInfo) class GameInfoAdmin(admin.ModelAdmin): # 分页 list_per_page = 2 # 设置顶部和底部 actions_on_bottom = True actions_on_top = True # 自定义显示的字段 list_display = ['id', 'gtitle', 'game_date','game_download'] # 过滤器 list_filter = ['id','gtitle'] # 搜索框 search_fields = ['id'] # 编辑显示字段 # fields = ['gtitle','game_date'] # 分组显示 fieldsets = ( ('基本', {'fields': ['gtitle', 'game_date']}), ('高级', { 'fields': ['game_download', 'gcommnet'], 'classes': ('collapse',) # 是否折叠显示 }) ) inlines = [HeroInfoInline] @admin.register(HeroInfo) class HeroInfoAdmin(admin.ModelAdmin): pass admin.site.site_header = '游戏中心' admin.site.site_title = 'tx游戏' admin.site.index_title = '欢迎来到tx游戏'
上传图片
安装图片操作包
pip install Pillow
配置
模型类添加图片字段
# Django是主目录或者自定义其他目录(static_files)
image = models.ImageField(upload_to='Django', verbose_name='图片' ,null=True)