0
我无法弄清楚如何序列化的查询,包括从反向相关模型领域取得系列化领域。我的模型看起来像这样。每个投票链接到单个相册:Django的 - 从相关模型
# models.py
class Album(models.Model):
name = models.CharField(max_length=50)
class Vote(models.Model):
album = models.ForeignKey(Album, on_delete=models.CASCADE)
user_vote = models.BooleanField(default=0)
我希望做的是执行返回所有专辑的对象,以及归属于该相册中票和查询。这是很容易的,但是当我序列化的查询中,“total_votes”字段丢失:
# views.py
# this works fine
query = Album.objects.annotate(total_votes = Sum(vote__user_vote))
# after serialization, I lose the field "total_votes"
serialized = serializers.serialize('json', list(query))
return serialized
不幸的是,本场“total_votes”中没有出现,因为序列化结果,根据Django文档,“只那些在本地模型中定义的字段将被序列化。”
所以我的问题是,我怎么得到以下序列化结果(假设有100票对艾比路和150星际周)?任何帮助将不胜感激。
[
{
"pk": 1,
"model": "app.album",
"fields": {
"name": "Abbey Road",
"total_votes": 100
},
{
"pk": 2,
"model": "app.album",
"fields": {
"name": "Astral Weeks",
"total_votes": 150
},
...
]