我有一個(gè)神秘的問(wèn)題,注釋沒(méi)有顯示在使用反向外鍵的查詢集上。使用 Django 2.2??rom 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)問(wèn)題我首先將 Hexgrid_10km2 過(guò)濾為僅包含回復(fù)的那些: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)>]>我檢查它們是否確實(shí)包含回復(fù):>>> hex_qs.aggregate(Sum('replies__ability')){'replies__ability__sum': 2.0}現(xiàn)在謎...>>> hex_qs.annotate(avg_ability=Avg('replies__ability'))<QuerySet [<Hexgrid_10km2: Hexgrid_10km2 object (197028)>]>注釋在哪里?它與我用來(lái)構(gòu)建模型的 geodjango 有關(guān)嗎?我感覺(jué)自己像個(gè)傻瓜。非常感謝您的幫助,因?yàn)槲彝耆ㄗ×恕?
1 回答

12345678_0001
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
如果您隨后將屬性添加到從該.annotate(..)
查詢集中產(chǎn)生的對(duì)象。
當(dāng) Django 打印一個(gè)查詢集時(shí),它使用repr(..)
來(lái)打?。ǖ谝粋€(gè))對(duì)象。所以這意味著除非__repr__
方法(或__str__
方法)被實(shí)現(xiàn)為打印屬性,否則它不會(huì)顯示出來(lái)。
例如,您可以使用以下命令訪問(wèn)第一個(gè)對(duì)象的注釋:
hex_qs[0].avg_ability
添加回答
舉報(bào)
0/150
提交
取消