2011-09-06 68 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中使用自定義窗口小部件和自定義管理窗體。

請注意,自定義小部件只能幫助您以不同格式顯示值。它不會將輸入值解析回對象,儘管我相信這也是可能的。

相關問題