vip136510786

from django.contrib import admin
from blogtest.models import *
#修改网页title和站点header。+
admin.site.site_title = "显示title"
admin.site.site_header = "显示抬头"


# 定认一个编辑页的子字段 要在模型管理类中加入一个inlines=[sitr]
class AreaStackedInline(admin.StackedInline):
    # 要写多类的名字
    model = AreaInfo
    # 下面新增的空行条数
    extra = 2


# admin.site.register(导入进来的模型类名,自定义的模型管理类)
# 写法一太麻烦 ,后台应用必须注册不然不显示
# class BlogText(admin.ModelAdmin):
#     # 指定每行显示的内容
#     list_display = [
#         "id",\'atitle\',\'aadd\'
#     ]
# 注册模型类,必须在管理类后面,参数为(要显示的模型(类名),要显示的字段去哪个类中寻找)
# admin.site.register(导入进来的模型类名,自定义的模型管理类)
# admin.site.register(AreaInfo,BlogText)      # 不要忘记第二个参数

# 写法二
@admin.register(AreaInfo)
class AreaInfoadmin(admin.ModelAdmin):
    # 可以写模型类属性也可以写模型类方法但要有返回值
    list_display = (
        # ID  父级地区    子级地区   父级地区
        \'id\', \'atitle\', \'aadd\', \'show_atitle\',\'aParent\'
    )

    # 每页显示行数
    list_per_page = 10

    # 下方:下拉列表框
    actions_on_bottom = True
    # 上方:下拉列表框
    actions_on_top = True
    # 右侧过滤栏
    list_filter = [\'atitle\']
    # 列表页上方搜索框!!!!!!!!!!!!!!!!!!!!!跟拒哪一个字段搜索
    search_fields = [\'atitle\']
    # 显示编辑页的字段顺序+
    # fields = [\'atitle\',\'id\']

    fieldsets = (
        (\'基本\',{\'fields\':[\'atitle\']}),
        (\'高级\',{\'fields\':[\'aadd\']})
    )

    # 在编辑页中显示子集
    inlines = [AreaStackedInline]

 

=================分割线=======================
# Project/models.py

class AreaInfo(models.Model):
    atitle = models.CharField(max_length=20,verbose_name=\'城市\')
    aadd = models.ForeignKey(\'AreaInfo\', on_delete=models.CASCADE, null=True,verbose_name=\'父级地区\')

    # 指定后台字段名
    def __str__(self):
        return self.atitle

    # 可以写进list_display的方法
    def show_atitle(self):
        return self.atitle
    # 指定show_atitle方法 跟据哪个字段进行排序
    show_atitle.admin_order_field=\'atitle\'
    # 指定行首的名称
    show_atitle.short_description = \'地区名称(方法列)\'

    # 在管理页面显示父级地区方法
    def aParent(self):
        # 如果有父级地区就返回没有就返回空
        if self.aadd is None:
            return \'\'
        else:
            return self.aadd
    aParent.short_description=\'父级地区(方法列)\'

 

分类:

技术点:

相关文章: