Django – 在ModelAdmin中覆盖get_fieldset会返回两次字段
发布时间:2020-12-20 12:30:57 所属栏目:Python 来源:网络整理
导读:我想手动为管理字段集添加一个字段. 函数calcGeometryField返回我想要添加到admin字段集的字段. 但是,我在管理界面中添加了两次该字段.为什么? class FeatureAdmin(admin.OSMGeoAdmin): fieldsets = [ ('Info',{'fields':['shapefile','id_relat','attribut
我想手动为管理字段集添加一个字段.
函数calcGeometryField返回我想要添加到admin字段集的字段. 但是,我在管理界面中添加了两次该字段.为什么? class FeatureAdmin(admin.OSMGeoAdmin): fieldsets = [ ('Info',{'fields':['shapefile','id_relat','attribute_value']}) ] list_display = ['shapefile','id_relat'] list_filter = ('shapefile',('shapefile__created_by')) def get_fieldsets(self,request,obj=None): fieldsets = super(FeatureAdmin,self).get_fieldsets(request,obj) fieldsets[0][1]['fields'].insert(2,calcGeometryField(obj.shapefile.geom_type)) return fieldsets 注意:该字段是来自OSMGeoAdmin的地图geodjango,但我使用IntegerField测试了相同的结果. 编辑:在更改模型实例时,fielsets似乎也是混合的.实例中的字段显示在管理界面中的另一个实例中. 解决方法
原始字段集dict是类级属性.通过插入字段,您将修改类级别字典,该字典会影响从中派生的所有实例.
在插入之前,您可能希望对字段集进行深度复制: import copy ... fieldsets = copy.deepcopy(super(FeatureAdmin,obj)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |