Django的序列外键对象(django serialize foreign key objects

2019-06-24 06:44发布

  • 序列化与国外重点车型的Django模型
  • 序列化Django的外键对象
  • 得到一个单一的查询外键对象- Django的

有几个问题,问对已经同样的事情。 但他们是从2010年,并没有帮助我这么多。 所以我想,因为2010年,也许有了一些更新,这方面?

在谷歌,我发现这个链接 ,其解释的使用自然键 。 但是我的问题的担忧从得到异物django.contrib.auth.models.User所以它并不能帮助。

我的问题是如下。 我想序列化的QuerySet,所以我得到的外键对象也,因为我希望把它作为JSON到客户端。 从串行django.core没有做到这一点。 所以在我的情况下,简单地将问题我又增加了另一场模型包含我从异物所需要的价值。 但是,但是引入冗余数据。

我的例子模型所包含的username ,我想如果可能的话删除,而是由外键得到它。

    user = models.ForeignKey(User)
    username = models.CharField(max_length=100, null=False)

Answer 1:

解决此问题的潜在方法是基于一个查询集的回报来构建自己的字典对象。 你会做这样的事情:

queryset = Model.objects.all()
list = [] #create list
for row in queryset: #populate list
    list.append({'title':row.title, 'body': row.body, 'name': row.user.username})
recipe_list_json = json.dumps(list) #dump list as JSON
return HttpResponse(recipe_list_json, 'application/javascript')

您需要导入JSON这个工作。

import json


Answer 2:

你可以使用Django的REST框架串行 。



文章来源: django serialize foreign key objects