使用JSONField时,读取值时,内容将从JSON自动解码为python对象。我有一个用例,其中我将字符串编码回JSON以嵌入模板中。有什么方法可以从对象中获取原始JSON字符串吗?
答案 0 :(得分:1)
Django在后台使用psycopg2.extras.Json
。您将需要将该字段转换为文本,以将原始文本转换为纯文本[1]。使用Django的Cast
函数[2]注释您的查询集:
from django.db.models.functions import Cast
from django.db.models import TextField
models_with_json_text = Model.objects.annotate(
json_as_text=Cast("json_field_name", TextField())
)
[1] http://initd.org/psycopg/docs/extras.html#json-adaptation
[2] https://docs.djangoproject.com/en/2.2/ref/models/database-functions/#cast