我想重写显示在Django管理一个字段的值。 该字段包含XML和管理员查看时,我想漂亮格式以方便日后的可读性。 我知道该怎么做重新格式化上读取和领域本身的写入,但是这不是我想做的事情。 我想用存储的空白XML剥离,我只需要对其进行格式化,当它在管理变化的形式观看。
所以我的问题是,我怎么能控制的管理变化形式这一领域的textarea的显示值?
我想重写显示在Django管理一个字段的值。 该字段包含XML和管理员查看时,我想漂亮格式以方便日后的可读性。 我知道该怎么做重新格式化上读取和领域本身的写入,但是这不是我想做的事情。 我想用存储的空白XML剥离,我只需要对其进行格式化,当它在管理变化的形式观看。
所以我的问题是,我怎么能控制的管理变化形式这一领域的textarea的显示值?
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()