Python Tastypie和JSON字段序列化问题

Python Tastypie和JSON字段序列化问题,python,django,tastypie,Python,Django,Tastypie,因此,我阅读了以下帖子,但没有找到答案: 我的模型使用JSONField来存储任意数据 class Task(models.Model): """ Execution of a Test """ results = JSONField(max_length=1000, blank=True) 在python shell中,我可以打印此字段,它呈现以下内容: [{"name": "tata", "result": "toto"}] 我修改了dehydra

因此,我阅读了以下帖子,但没有找到答案:

我的模型使用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"}]

谢谢。

字符串值是简单的json编码,因此您需要在js中对其进行解码:

JSON.parse("[{\"name\": \"Cash In\", \"result\": \"toto\"}]")

这将为您提供正确的对象列表。

字符串值是简单编码的json,因此您需要在js中对其进行解码:

JSON.parse("[{\"name\": \"Cash In\", \"result\": \"toto\"}]")

这将为您提供正确的对象列表。

如果我没有弄错的话,您不需要提供自定义脱水字段,因为bundle.obj.results已经是数据库中的反序列化对象

只需根据存储的数据将结果字段类型指定为tastypie.fields.DictField或tastypie.fields.ListField,而不是提供自定义的detercheme_results函数

例如


如果我没有弄错的话,您不需要提供自定义的dehydrate字段,因为bundle.obj.results已经是数据库中的反序列化对象

只需根据存储的数据将结果字段类型指定为tastypie.fields.DictField或tastypie.fields.ListField,而不是提供自定义的detercheme_results函数

例如


哇,我非常感谢你:ListField工作得非常好!迪克菲尔德的工作也同样出色。为我节省了至少一个小时的工作。谢谢,我非常感谢你:ListField工作得非常好!迪克菲尔德的工作也同样出色。为我节省了至少一个小时的工作。谢谢