Python序列化(到JSON)问题
我对Python有点生疏,所以对我放松点。我正在用Django编写一个AJAX处理程序。到目前为止,这方面的一切都很直截了当。一天中的大部分时间里,我一直在用我的头撞这个东西。我想返回一个JSON字符串,该字符串包含一个包含queryset的dict:Python序列化(到JSON)问题,python,json,serialization,Python,Json,Serialization,我对Python有点生疏,所以对我放松点。我正在用Django编写一个AJAX处理程序。到目前为止,这方面的一切都很直截了当。一天中的大部分时间里,我一直在用我的头撞这个东西。我想返回一个JSON字符串,该字符串包含一个包含queryset的dict: # # models.py # class Project(models.Model): unique_name = models.CharField(max_length=32, unique=True) title
#
# models.py
#
class Project(models.Model):
unique_name = models.CharField(max_length=32, unique=True)
title = models.CharField(max_length=255, blank=True)
description = models.TextField('project description', blank=True)
project_date = models.DateField('Project completion date')
published = models.BooleanField()
class ProjectImage(models.Model):
project = models.ForeignKey('Project', related_name='images')
image = models.ImageField(upload_to=get_image_path)
title = models.CharField(max_length=255)
sort_metric = models.IntegerField()
#
# views.py
#
...
projects = Project.Project.objects.filter(published=True)
...
response_dict({
'success' : True,
'maxGroups' : 5, # the result of some analysis on the projects queryset
'projects' : projects
});
# This one works if I remove 'projects' from the dict
# response = json.dumps( response_dict )
# This one works only on projects
# response = serializers.serialize( 'json', response_dict, relations=('images') )
return HttpResponse( response, mimetype='application/javascript' )
我已经注释掉了这两个序列化行,因为:
]中失败。[]是不可JSON序列化的
“str”对象没有属性“\u meta”
。请注意,我使用Wadofsuff序列化程序时理解到,它将解析模型中定义的OneToMany关系。但是,即使我只通过序列化项目
来实现这一点,我的输出中也没有任何项目图像响应的最佳方式是什么?当然,我不是第一个想这么做的人,对吧
问题2:为什么我无法让多人关系发挥作用
非常感谢你的帮助
更新:刚刚发现了这个:看起来很有希望,但是我得到了'QuerySet'对象没有属性“\u meta”
=(你不能像那样序列化python对象。django文档中有一节介绍了如何做
以下是需要了解的关键部分:
json_serializer.serialize(queryset, ensure_ascii=False, stream=response)
这与哪个问题有关?第1个还是第2个?我想你的建议只允许我序列化queryset–如上所述,我已经可以这样做了,但是,我似乎不能在序列化结果中包含非queryset信息。这与问题#1有关,如果你序列化了项目,你应该能够序列化整个queryset回复指令:迟做总比不做强=)