所以我看了下面的帖子也没有找到答案:
我的模型使用 JSONField 来存储任意数据。
class Task(models.Model):
"""
Execution of a Test
"""
results = JSONField(max_length=1000, blank=True)
在 python shell 中,我可以打印这个字段并呈现以下内容:
[{"name": "tata", "result": "toto"}]
我修改 dehydrate 方法以删除 unicode,但我得到以下结果:
**Dehydrate Method:**
def dehydrate_results(self, bundle):
results = json.dumps(bundle.obj.results)
return results
**Tastypie Result**
"results": "[{\"name\": \"Cash In\", \"result\": \"toto\"}]"
我不能在我的 javascript 应用程序中使用这个对象...也许你可以向我解释如何从 tastypie 获得“正常”json 输出:
**Wanted Tastypie Result**
"results": [{"name": "Cash In", "result": "toto"}]
谢谢。
请您参考如下方法:
如果我没记错的话,您不需要提供自定义 dehydrate 字段,因为 bundle.obj.results 已经是数据库中的反序列化对象。
无需提供自定义 dehydrate_results 函数,只需将 results 字段类型指定为 tastypie.fields.DictField 或 tastypie.fields.ListField 取决于您存储的数据。
例如。
from tastypie.fields import ListField
class MyResource(ModelResource):
results = ListField(attribute='results')
