2011-09-06 80 views
2

我有一个复杂的对象,我将其存储在序列化文本字段中。对于大多数目的,我希望从数据库中拉出的对象是那个复杂的对象。但是,当我在表单中编辑它时,我只想看看该字段中的序列化文本。Django,自定义字段,to_python,并显示在Django中的序列化文本admin

我试过使用value_to_string函数,但是看起来好像根本没有在使用admin编辑记录时被调用。

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

+0

你是说管理员不显示模型的文本字段的内容?请澄清这个问题。 – akonsu

+0

该字段是使用'to_python'方法的自定义字段。所以当它从数据库中检索值时,它会对其进行反序列化。我希望序列化版本显示为文本字段的内容。 –

回答

0

由于管理员已经使用模型字段的值,其中一个方案是重新序列进行编辑...

参见formfield_overrides

这提供了一个快速和 - 肮脏的方式来覆盖一些在管理中使用的字段 选项。 formfield_overrides是一个字典 将一个字段类映射为一个参数字典,以传递给构建时间为 的字段。

+0

那么我应该添加哪些方法在'Field'类中,以便重新序列化该值?我认为这将是value_to_string,但它不是。看起来像'formfield_overrides'允许你改变一个给定类型的所有字段的基本选项。这不会让我改变这个领域的价值。 –

0

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

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

相关问题