1

存储在数据库中的数据是 HTML。我无法改变这个事实,但我想将它隐藏在我的 django 管理站点中。

在数据库填充模型之前,我想捕获它并将 html 实体转换为 unicode。当模型保存到数据库时,我想反转这个过程。

我可以进行从 HTML 实体到 unicode 的实际转换,反之亦然,但我不太了解 Django 来完成这个。

我已经查看了管理员的模型表单,但是当数据显示在 list_display 或站点上的其他位置时,这将不起作用。

在哪里/如何最好的方式来解决这个问题?

4

1 回答 1

1

custom field如果您想要自动调用/保存此字段的任何内容,请考虑制作一个。具体来说,在 中设置数据库到模型的转换,在 中设置to_python模型到数据库的转换get_prep_value

如果这是专门针对管理员某个区域的行为,您也可以将其全部设置在ModelAdmin. list_display可以指向可以对输出做任何事情的只读字段。

纯管理员:

class ModelAdmin(admin.ModelAdmin):
    list_display = ('_myfield',)
    readonly_fields = ('_myfield', )
    form = MyModelForm # modelform with overriden save() and init
    # converting values to / from db.

    def _myfield(self, obj):
        return whatever_conversion_here(obj.myfield)
于 2012-05-01T22:31:10.700 回答