如何覆盖在 Django 管理员中为字段显示的值?该字段包含 XML,当在管理员中查看它时,我想对其进行漂亮的格式化以便于阅读。我知道如何对字段本身的读写进行重新格式化,但这不是我想要做的。我希望存储的 XML 被去掉空格,并且我只想在管理员更改表单中查看它时重新格式化它。
如何控制此字段的管理员更改表单的文本区域中显示的值?
class MyModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(MyModelForm, self).__init__(*args, **kwargs)
self.initial['some_field'] = some_encoding_method(self.instance.some_field)
class MyModelAdmin(admin.ModelAdmin):
form = MyModelForm
...
在哪里,some_encoding_method
将是您为确定间距/缩进或您借用的其他一些第三方功能而设置的东西。但是,如果您编写自己的方法,最好将其放在模型本身上,然后通过实例调用它:
class MyModel(models.Model):
...
def encode_some_field(self):
# do something with self.some_field
return encoded_some_field
然后:
self.instance.encode_some_field()