我正在使用模型具有payload
属性,其中包含Base64编码的JSON。
我正在编写管理员视图,这将合并此模型和其他几个人所代表的数据。
ModelAdmin
次视图中显示JSON的Base64解码版本。这在Django中可行吗?
答案 0 :(得分:1)
您必须使用以下代码创建自定义管理模板:
{% extends "admin/change_form.html" %}
{% load i18n %}
{% block content %}
This is the field: {{ original.payload }}
{{ block.super }}
{% endblock %}
将其保存为“templates / admin / change_model_payload.html”并将其添加到模型的ModelAdmin中:
change_form_template = "admin/change_model_payload.html"
对于#2,您可能希望创建自定义模板标记以检索数据库条目。
答案 1 :(得分:1)
如果您期望特定类型的特定元素,那么您最好在save()上解码它,而不是盲目地将其存储在base64中。
我的建议是创建一个包含所有预期属性的PayloadData类,与原始模型一对一,在存储有效负载时存储属性,以及索引,查询,过滤,订购,加入以及RDBMS允许您执行的任何其他有趣的事情。
OR 抛弃数据库和Django自己的ORM并转到no-sql。大多数基于文档的nosql服务器都能够查询(或至少创建视图)任何类型的子字段条件。