Django框架的使用教程--站点的管理[七]

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)

结果

原文地址:https://www.cnblogs.com/gaidy/p/9259447.html