2016-02-18 68 views
1

我试图从Django中查询我的Postgres数据库,我使用的查询是是否有可能在Django中查询查询对象?

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() 

或类似的东西?

+0

对不起,目前还不清楚你问这里。 's'是一个查询集,它没有'modified_at'属性或'objects'管理器。 –

+0

无论如何,你使用的过滤器返回一个列表,s.modified_at会抛出一个错误。 – ofnowhere

+0

过滤器返回一个列表,我的意思是我改变了列表中的值(即s)。 –

回答

1

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

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

思考你为什么要问这个问题,特别是看看使用“modified_at”的例子:为什么你不想保存你的数据? (您可能需要使用auto_now=True为贵“modified_at”场,顺便说一句。)

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 
相关问题