注释QuerySet后如何访问模型对象

时间:2018-07-09 13:58:52

标签: python django

我有一个QuerySet,我在其中注释了日期字段,并且工作得很好。请参阅下面的代码。

tenderSet = userTenders.annotate(d_assigned=TruncDay('date_assigned')).values('d_assigned').annotate(c=Count('id')).values('d_assigned', 'c').order_by("-d_assigned")

这是输出。 enter image description here

我的问题是我希望能够单击图像中的链接并查看实际对象。例如,如果单击上图中显示“ 2投标”的链接,我希望可以访问与该注释关联的“投标”对象。但是不幸的是,由于我上面的注释返回了“字典”的QuerySet,因此我无法访问模型对象。我需要知道是否有一种方法可以保留上面的listView的外观,并且仍然能够访问带注释的投标对象。

谢谢。

1 个答案:

答案 0 :(得分:0)

您想访问所有对象吗?

然后,您必须将一些参数传递给页面,以便可以在那里进行准确的注释。

在您的示例中,您可以传递日期并在视图中对其进行过滤。

会是这样的:

您的页面网址:something.com/pagename/?date=some-date

或:something.com/year/month/day/

然后在您的视图中可以过滤该日期的查询集:

tenderSet = userTenders.filter(date=<The Date You Got from URL>)

现在,您将拥有该日期的所有对象,因此您可以重复注释或任何想要的操作。

基本上,每当您需要一个用于某些过滤器的页面时,都需要从页面url获取过滤参数。