亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

注釋 Django 查詢集不使用向后外鍵返回注釋。使用geodjango

注釋 Django 查詢集不使用向后外鍵返回注釋。使用geodjango

慕容森 2022-10-11 21:17:56
我有一個神秘的問題,注釋沒有顯示在使用反向外鍵的查詢集上。使用 Django 2.2。楷模from django.contrib.gis.db import modelsclass Hexgrid_10km2(models.Model):    polygon = gismodels.MultiPolygonField(srid=4326)class Reply(models.Model):    user = models.ForeignKey(User, on_delete=models.CASCADE)    reply_date = models.DateTimeField()    ability = models.FloatField(default = 0)    hexgrid_10km2 = models.ForeignKey(Hexgrid_10km2, related_name='replies', on_delete=models.CASCADE, null=True, blank=True)問題我首先將 Hexgrid_10km2 過濾為僅包含回復的那些:most_recent = Reply.objects.filter(    reply_date=Subquery(        (Reply.objects            .filter(user=OuterRef('user'))            .values('user')            .annotate(most_recent=Max('reply_date'))            .values('reply_date')[:1]        )    ))hex_qs = Hexgrid_10km2.objects.filter(replies__in=most_recent)>>> hex_qs<QuerySet [<Hexgrid_10km2: Hexgrid_10km2 object (197028)>, <Hexgrid_10km2: Hexgrid_10km2 object (197028)>]>我檢查它們是否確實包含回復:>>> hex_qs.aggregate(Sum('replies__ability')){'replies__ability__sum': 2.0}現在謎...>>> hex_qs.annotate(avg_ability=Avg('replies__ability'))<QuerySet [<Hexgrid_10km2: Hexgrid_10km2 object (197028)>]>注釋在哪里?它與我用來構建模型的 geodjango 有關嗎?我感覺自己像個傻瓜。非常感謝您的幫助,因為我完全卡住了。
查看完整描述

1 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

如果您隨后將屬性添加到從.annotate(..)查詢集中產生的對象。

當 Django 打印一個查詢集時,它使用repr(..)來打?。ǖ谝粋€)對象。所以這意味著除非__repr__方法(或__str__方法)被實現為打印屬性,否則它不會顯示出來。

例如,您可以使用以下命令訪問第一個對象的注釋:

hex_qs[0].avg_ability


查看完整回答
反對 回復 2022-10-11
  • 1 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號