admin表单字段指定初始值
来源:13-4 自定义列表返回数据,同一个model注册两个管理器
桂圆
2020-09-07
老师你好,我用的django3.1,我想后台的admin在打开一个表单的时候,赋给一个计算来的初始值
网上查到可以在admin.py文件中,使用
formfield_for_dbfield来实现
class Trading_recordAdmin(admin.ModelAdmin):
def formfield_for_dbfield(self, db_field, request, **kwargs):
# field = super(Trading_recordAdmin,self).formfield_for_dbfield(db_field, request, **kwargs)
if db_field.name == "r_amount":
self.formfield_overrides[r_amount] = 11
return super(Trading_recordAdmin,self).formfield_for_dbfield(db_field, request, **kwargs)
'''设置列表可显示的字段'''
list_display = ('release_time', 'addtime', 'amount', 'category',)
追踪到formfield_for_dbfield里看到源码中说使用formfield_overrides重写字段值,不知道理解的对不对
# If we've got overrides for the formfield defined, use 'em. **kwargs
# passed to formfield_for_dbfield override the defaults.
for klass in db_field.__class__.mro():
if klass in self.formfield_overrides:
kwargs = {**copy.deepcopy(self.formfield_overrides[klass]), **kwargs}
return db_field.formfield(**kwargs)
我想要一个模型,在admin表单显示的时候,其中一个字段在表单上显示的值,是通过其它字段计算来的,这个我应该怎么实现呢
写回答
2回答
-
慕数据5323124
2020-12-23
童鞋在不?请教一个问题,在Iist_display添加自定义字段并将该配置注册、运行项目后,为啥在xadmin列表页都显示出了该字段、却没有值全是空的呢?下面aaa()、bbb()、paper_list都是自定义字段
class ProdAdmin(object): model_icon = "fa fa-crop" list_display = ['name','category','aaa','bbb','paper_list','image','image_data','create_time'] list_filter = ['category'] def aaa(self,obj): # return ', '.join([paper.title for paper in self.cropspaper.all()]) print("*" * 50) print(obj.cropspaper.id) return obj.cropspaper.id def bbb(self): return 111
终端也没有打印值,怀疑是自定义字段函数没有执行,这个是为什么呢,用的是django3.1.3 xadmin2.0.1
012020-12-24 -
bobby
2020-09-08
你直接在model中定义函数来统计不行吗 ?
032020-09-09
相似问题