Я пытаюсь сделать эту транзакцию mysql совместимой. Поскольку mysql не разрешает текущую операцию. MySQL не позволяет обновлять таблицу, которую вы уже используете во внутреннем выборе в качестве критерия обновления.
Получение этой ошибки
django.db.utils.OperationalError: (1093, "You can't specify target table 'catalogue_category' for update in FROM clause")
Код:
included_in_non_public_subtree = self.__class__.objects.filter(
is_public=False, path__rstartswith=OuterRef("path"), depth__lt=OuterRef("depth")
)
self.get_descendants_and_self().update(
ancestors_are_public=Exists(
included_in_non_public_subtree.values("id"), negated=True)
)
https://github.com/django-oscar/django-oscar/pull/3050#pullrequestreview -461576714