存储在数据库中的数据是HTML。我不能改变这个事实,但我想在我的django管理站点中隐藏它。
在数据库填充模型之前,我想捕获它并将html实体转换为unicode。当模型保存到数据库时,我想颠倒过程。
我可以实现从HTML实体到unicode的实际转换,反之亦然,但我不知道Django是否足以完成此任务。
我已经查看了管理员的模型表格,但是当数据显示在list_display或网站上的其他位置时,这将不起作用。
在哪里/如何最好地融入这个?
答案 0 :(得分:1)
如果您想自动将其设置为调用/保存此字段的任何内容,请查看制作custom field
。具体来说,在to_python
中设置数据库到模型的转换,在get_prep_value
中设置模型到数据库的转换。
如果这是专门针对管理员某个区域的行为,您也可以在ModelAdmin
中进行全部设置。 list_display
可以指向只读字段,可以对输出执行任何操作。
Pure admin:
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)