如何在Django中为字段动态设置值

时间:2019-10-21 14:14:19

标签: python django sorting orm

我正在构建Django查询的动态排序。我添加了其他列进行排序,如下所示:

class MyModel(models.Model):
    order_column = models.IntegerField()

    class Meta:
        ordering = ('order_column',)

,现在需要在每次更改/排序操作时相应地更新其值。现在,我通过以下方式进行操作:

def some(self):
    my_query = MyModel.objects.all()
    my_list = list(my_query)
    pop_index = 4
    insert_index = 2
    obj = my_list[pop_index]
    my_list.insert(insert_index, obj)

    for i, item in enumerate(my_list):
        item.order_column = i
        item.save()

它可以工作,但是我不喜欢for循环中的save。我知道要更新查询,可以调用query.update,所以我尝试了:

my_query.update(order_column=lambda x: images_list.index(x))

但是它不起作用。有没有办法在单个表达式(例如update)中实现这一目标?

0 个答案:

没有答案