Django,自定义字段,to_python,以及在Django管理员中按原样显示序列化文本

时间:2011-09-06 18:42:49

标签: django serialization django-admin

我有一个复杂的对象,我将其序列化存储在文本字段中。在大多数情况下,我希望从数据库中提取的对象是那个复杂的对象。但是,当我在表单中编辑它时,我只想在字段中看到序列化文本。

我尝试使用value_to_string功能,但在使用admin编辑记录时,似乎根本没有调用它。

我该怎么做才能将原始序列化文本显示在管理文本字段中?

2 个答案:

答案 0 :(得分:0)

由于管理员已使用您的模型字段的值,因此一个选项将重新序列化以进行编辑...

另见formfield_overrides

  

这提供了一种快速而肮脏的方式来覆盖某些字段   管理员中使用的选项。 formfield_overrides是一本字典   将字段类映射到要传递给字段的参数的字典   施工时间。

答案 1 :(得分:0)

我不确定这是否是同样的问题,但我想出了一种在显示之前更改管理表单中字段值的方法。我在this answer中解释了如何使用自定义小部件和自定义管理表单。

请注意,自定义窗口小部件仅可帮助您以其他格式显示值。它不会将输入值解析回对象,但我相信这也是可能的。