djago后台管理页面
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='父级地区(方法列)'