Django 2.1.7 Admin管理后台 - 注册模型、自定义显示列表字段
https://docs.djangoproject.com/zh-hans/2.1/intro/tutorial07/
调整的属性如下:
fields=[]
1)点击某行ID的链接,可以转到修改页面,默认效果如下图:
2)打开assetinfo/admin.py文件,修改ServerInfoAdmin类如下:
@admin.register(ServerInfo)
class ServerInfoAdmin(admin.ModelAdmin):
fields = ['server_intranet_ip', 'server_hostname','server_internet_ip'] # 设置编辑页的显示字段
3)刷新浏览器效果如下图:
属性如下:
fieldset=(
('组1标题',{'fields':('字段1','字段2')}),
('组2标题',{'fields':('字段3','字段4')}),
)
1)打开assetinfo/admin.py文件,修改ServerInfoAdmin类如下:
class ServerInfoAdmin(admin.ModelAdmin):
# fields = ['server_intranet_ip', 'server_hostname','server_internet_ip'] # 设置编辑页的显示字段
fieldsets = (
('基本', {'fields': ['server_hostname']}),
('服务器IP', {'fields': ['server_intranet_ip','server_internet_ip']})
)
2)刷新浏览器效果如下图:
说明:fields与fieldsets两者选一使用。
单纯看这个object信息无法知道修改哪个数据的标记页,可以通过管理类的__str__
方法来返回某个字段。
1)打开assetinfo/models.py文件,修改ServerInfo类,添加str方法。
class ServerInfo(models.Model):
server_hostname = models.CharField(max_length=20, default=None, verbose_name='服务器名称')
....
# 设置返回主机名
def __str__(self):
return self.server_hostname
2)刷新浏览器效果如下图:
在一对多的关系中,可以在一端的编辑页面中编辑多端的对象,嵌入多端对象的方式包括表格、块两种。 类型InlineModelAdmin:表示在模型的编辑页面嵌入关联模型的编辑。子类TabularInline:以表格的形式嵌入。子类StackedInline:以块的形式嵌入。
1)打开assetinfo/admin.py文件,创建MiddlewareInfoStackedInline类。
class MiddlewareInfoStackedInline(admin.StackedInline):
model = MiddlewareInfo #关联子对象
extra = 2 #额外编辑2个子对象
2)打开assetinfo/admin.py文件,修改ServerInfoAdmin类如下:
@admin.register(ServerInfo)
class ServerInfoAdmin(admin.ModelAdmin):
inlines = [MiddlewareInfoStackedInline]
3)刷新浏览器效果如下图:
可以用表格的形式嵌入。
1)打开assetinfo/admin.py文件,创建MiddlewareInfoTabularInline类。
# 中间件内联表格
class MiddlewareInfoTabularInline(admin.TabularInline):
model = MiddlewareInfo # 关联子对象
extra = 2 # 额外编辑2个子对象
2)打开assetinfo/admin.py文件,修改ServerInfoAdmin类如下:
@admin.register(ServerInfo)
class ServerInfoAdmin(admin.ModelAdmin):
inlines = [MiddlewareInfoStackedInline, MiddlewareInfoTabularInline]
3)刷新浏览器效果如下图: