40. Django 2.1.7 Admin - 编辑页选项
作者:互联网
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](http://www.icode9.com/i/li/?n=4&i=images/blog/202106/18/3d55a4a66a42e478bc149033bd60fa19.png?,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
调整编辑页的字段顺序
调整的属性如下:
fields=[]
1)点击某行ID的链接,可以转到修改页面,默认效果如下图:
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](http://www.icode9.com/i/li/?n=4&i=images/blog/202106/18/6958fde673833e517618f9c44b1294c4.png?,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
2)打开assetinfo/admin.py文件,修改ServerInfoAdmin类如下:
@admin.register(ServerInfo)
class ServerInfoAdmin(admin.ModelAdmin):
fields = ['server_intranet_ip', 'server_hostname','server_internet_ip'] # 设置编辑页的显示字段
3)刷新浏览器效果如下图:
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](http://www.icode9.com/i/li/?n=4&i=images/blog/202106/18/4d30e8dd8e845b5eb5b593d5086ed956.png?,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
分组显示
属性如下:
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)刷新浏览器效果如下图:
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](http://www.icode9.com/i/li/?n=4&i=images/blog/202106/18/1753f7fd9e8dcc482a0a372e9312e3bd.png?,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
说明:fields与fieldsets两者选一使用。
”
设置返回的模型对象为某个字段
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](http://www.icode9.com/i/li/?n=4&i=images/blog/202106/18/a2acc1eaa5ca55ecc9851995cc189d7f.png?,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
单纯看这个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)刷新浏览器效果如下图:
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](http://www.icode9.com/i/li/?n=4&i=images/blog/202106/18/4724bbea2cad127e2daf892a2092a45b.png?,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
编辑页显示关联对象的数据
在一对多的关系中,可以在一端的编辑页面中编辑多端的对象,嵌入多端对象的方式包括表格、块两种。类型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)刷新浏览器效果如下图:
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](http://www.icode9.com/i/li/?n=4&i=images/blog/202106/18/d6a59bab2e957650e485ce4739dd06b2.png?,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
可以用表格的形式嵌入。
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)刷新浏览器效果如下图:
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](http://www.icode9.com/i/li/?n=4&i=images/blog/202106/18/0a330bbbd30571a061e83d28bb99a739.png?,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
标签:Admin,fields,py,40,server,admin,ServerInfoAdmin,Django,assetinfo 来源: https://blog.51cto.com/u_11239407/2920436