有没有办法将非Django提供的值附加到查询中?在
例如,为了确定一个商店是否关闭,我可以运行一个名为get_closed_stores()
的函数,该函数返回已关闭商店的列表。在
商店关闭
[00090, 00240, 00306, 00438, 03005, 05524]
太好了,现在我们有关店的店号了。让我们获取那些实际的存储对象。在
查询
^{pr2}$我们现在有了QuerySet,但是我们绝对没有办法检测商店何时关闭,因为数据库不包含任何有关紧急关闭的信息,但是Sharepoint有。所以回到get_closed_stores()
我们可以在商店编号旁边返回关闭日期,这样我们的关闭的商店列表(字典)看起来更像下面:
带日期的门店列表
{
[00090, '1/28/19 5:00PM'],
[00240,'1/28/19 5:00PM'],
[00306, '1/28/19 5:00PM'],
[00438,'1/28/19 5:00PM'],
[03005,'1/28/19 5:00PM'],
[05524, '1/28/19 5:00PM']
}
既然日期和我的商店编号在一起,我就可以把它添加到我的查询集(理想情况下)并从前端访问它。在
因此,如果我使用与Django-ORM相关的任何东西,annotate()
将是理想的,但是当涉及到“注入”外部数据时,我在寻找什么呢?在
我完全可以在我的前端从JS给每个商店打电话,但如果我能避开它,我宁愿不打电话
一个QuerySet本身并不是什么神奇或特殊的东西,最终它还是一本字典,所以我有了一个随机的想法,以我通常的方式附加到字典中,并且它起作用了。在
我的函数现在返回字典:
我的视图使用这个字典并使用键(存储编号)来查询数据库,然后将存储的关闭日期追加为
^{pr2}$store.close_date
,只需说:这很可能会改变,但我想让它接近最初的问题,以便将来的读者阅读。以下是我的观点。在
因此,如果要向queryset添加一个非Django值,只需使用附加到字典的标准方法。在
当然,可以使用模板中的
{{ object.desired_name }}
访问它。在相关问题 更多 >
编程相关推荐