gpt4 book ai didi

python - [XXX] 处的 ManyRelatedManager 对象不可 JSON 序列化

转载 作者:行者123 更新时间:2023-11-30 23:08:13 26 4
gpt4 key购买 nike

我有一个带有 ManyToManyFields 的简单模型,我正在序列化为 JSON:

模型.py:

class Meeting(models.Model):
site = models.ForeignKey(Site)
meeting_title = models.CharField(default='', max_length=128, blank=True, null=True)
meeting_team_members = models.ManyToManyField(Team, blank=False, null=False) # hosts
meeting_visitors = models.ManyToManyField(Visitor, blank=False, null=False) # invited guests

views.py:

instances = Meeting.objects.filter(site=site.id)

for ins in instances: #populate list
context.append({
'meeting_title': ins.meeting_title,
'meeting_team_members':ins.meeting_team_members.all,
'meeting_visitors': ins.meeting_visitors.all,

json_context = json.dumps(context, cls=DjangoJSONEncoder) #dump list as JSON
return HttpResponse(json_context, 'application/javascript')

但是我收到以下类型错误:

TypeError at /dashboard/get_meetings/
<django.db.models.fields.related.create_many_related_manager.<locals>.ManyRelatedManager object at 0x03406730> is not JSON serializable

最佳答案

如果@Brobin的建议由于某种原因没有帮助......

meeting_team_members = [x.as_dict() for x in ins.meeting_team_members.all()]

class Team(models.Model):
# ... example fields
def as_dict(self):
context = {
'pk': self.id,
'name': self.name,
'description': self.description,
}

if self.image:
context['image'] = get_thumbnail(self.image, '150').url
context['full_image'] = self.image.url
else:
context['no_image'] = _(u'No image) # this is just for localization

return context

编辑

for ins in instances: #populate list
context.append({
'meeting_title': ins.meeting_title,
'meeting_team_members':[x.as_dict() for x in ins.meeting_team_members.all()]
})

关于python - [XXX] 处的 ManyRelatedManager 对象不可 JSON 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31818659/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com