是否可以在Django中查询查询对象?

时间:2016-02-18 11:21:20

标签: python django postgresql

我正在尝试从django查询我的postgres数据库,我正在使用的查询是

s = Booking.objects.all().filter(modified_at__range=[last_run, current_time], coupon_code__in=l)

现在我在我的脚本中以某种方式更改了我的这个对象,而不是将它保存到数据库中。我想知道的是,现在可以查询这个对象吗?

说,我将变量更改为

s.modified_at = '2016-02-22'

是否仍可以将此对象查询为:

s.objects.all()

或类似的东西?

2 个答案:

答案 0 :(得分:1)

QueryManager是Django与数据库(ORM)的接口。根据定义,这意味着您只能查询已存储在数据库中的数据。

所以,简而言之:“不”。您无法对未保存的数据进行查询。

考虑为什么你甚至要问这个问题,特别是使用“modified_at”查看示例:为什么你不想保存你的数据? (您可能希望将auto_now=True用于“modified_at”字段,顺便说一下。)

答案 1 :(得分:0)

你可以这样做:

bookings = Booking.objects.all().filter(modified_at__range=[last_run, current_time], coupon_code__in=l)
for booking in bookings:
   booking.modified_at = 'some value'
   booking.save() # now booking object will have the updated value