Kaydet (Commit) 8d2dcc47 authored tarafından Simon Charette's avatar Simon Charette Kaydeden (comit) Tim Graham

Fixed #30106 -- Made order_with_respect_to updates use QuerySet.bulk_update().

üst 2110b179
...@@ -1782,11 +1782,9 @@ def method_set_order(self, ordered_obj, id_list, using=None): ...@@ -1782,11 +1782,9 @@ def method_set_order(self, ordered_obj, id_list, using=None):
using = DEFAULT_DB_ALIAS using = DEFAULT_DB_ALIAS
order_wrt = ordered_obj._meta.order_with_respect_to order_wrt = ordered_obj._meta.order_with_respect_to
filter_args = order_wrt.get_forward_related_filter(self) filter_args = order_wrt.get_forward_related_filter(self)
# FIXME: It would be nice if there was an "update many" version of update ordered_obj.objects.db_manager(using).filter(**filter_args).bulk_update([
# for situations like this. ordered_obj(pk=pk, _order=order) for order, pk in enumerate(id_list)
with transaction.atomic(using=using, savepoint=False): ], ['_order'])
for i, j in enumerate(id_list):
ordered_obj.objects.filter(pk=j, **filter_args).update(_order=i)
def method_get_order(self, ordered_obj): def method_get_order(self, ordered_obj):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment