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
},
...
]