在不创建实例的情况下更新过滤器查询集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 信号的情况下更新数据库。