python - 向 ModelAdmin 表单添加额外的字段
问题描述
所以,我有一个 ModelAdmin,我需要添加额外的字段。这些字段在模型上是不存在的,但是会通过init方法动态添加到自定义的ModelForm中,clean里面的逻辑会在save时处理返回的数据。
我似乎找不到任何与将自定义非模型字段添加到 ModelAdmin 表单相关的可靠信息。我最接近的是通过覆盖 ModelAdmin 类上的 get_fields 并使用我想添加的新字段更新 self.form.declared_fields 。
这对我来说不是很干净,我很好奇是否有更好的方法可以动态地将新字段添加到 ModelAdmin?
解决方案
您也可以使用这种方式添加不在 models.py 中的字段
在 admin.py:::
from django.utils.translation import gettext as _
class TrialAdmin(admin.ModelAdmin):
fields = (..., 'non_model_field',...,)
def non_model_field(self, instance):
# this method name should be same as new field name defied above in fields.
# [what u need to do here]
non_model_field.short_description = _("non_model_field")
#This value 'short_description' defines what the field name is shown as in admin similar to 'verbose_name' in models.
admin.site.register(..., TrialAdmin)
推荐阅读
- java - 如何根据java中提供的天数计算下一个日期(天数月和年)?
- c++ - 使用 boost::di 制作单例时如何传递构造函数参数
- python - 在单元测试期间跳过发送电子邮件功能和 celery 任务
- python - csv中的上采样浮点第二系列(使用熊猫)?
- python - 无法多次使用循环合并熊猫数据框
- git - Git Commit Message Linting 作为网关,而不是在它被推送之后
- java - Java+jopendocument:使用 getCellAt(0,0) 时出现 NullPointerException
- android - 如何使用权重和约束布局划分下面的视图
- javascript - d3.js 多重关系视觉 / linkHorizontal() / 纠结树
- postgresql - 从查询 PERFORM 1 中获取 veue 到 temp FROM master_balance where externalkey = 'jknfl12j3' and tenant_record_id = '2' for update;1