在不创建实例的情况下更新过滤器查询集django中的特定字段
update a specific field in a filter queryset django without creating an instance
我有一个查询集returns模型的第一个对象
latest_ignit_data = ( ignition_data
.objects
.filter(vehicle=veh_obj,updated_time_lt=new_time)
.order_by('updated_time')
.first()
)
我想更新这个对象的时间字段,我该怎么做?
已编辑
这不是方式:
latest_ignit_data.update( updated_time =new_time )
阅读django documentation, first
raises a QuerySet evaluation because first
method is a convenience method equivalent to slicing.
那么,正确的方法是:
pk = ( ignition_data
.objects
.filter(vehicle=veh_obj,updated_time_lt=new_time)
.order_by('updated_time')
.values_list('id', flat=True)
.first()
)
ignition_data.objects.filter(pk=pk).update( updated_time =new_time )
这将在不创建实例且不发出 raise 信号的情况下更新数据库。
我有一个查询集returns模型的第一个对象
latest_ignit_data = ( ignition_data
.objects
.filter(vehicle=veh_obj,updated_time_lt=new_time)
.order_by('updated_time')
.first()
)
我想更新这个对象的时间字段,我该怎么做?
已编辑
这不是方式:
latest_ignit_data.update( updated_time =new_time )
阅读django documentation, first
raises a QuerySet evaluation because first
method is a convenience method equivalent to slicing.
那么,正确的方法是:
pk = ( ignition_data
.objects
.filter(vehicle=veh_obj,updated_time_lt=new_time)
.order_by('updated_time')
.values_list('id', flat=True)
.first()
)
ignition_data.objects.filter(pk=pk).update( updated_time =new_time )
这将在不创建实例且不发出 raise 信号的情况下更新数据库。