Как отфильтровать queryset по manytomany модели?

В двух приложениях модели с uuid через ManyToManyField. Надо выбрать все объекты первой модели и во второй отфильтровать только те, в которых встречается related_uuid из первой модели.

Выдает ошибку: django.db.utils.NotSupportedError: (1235, "This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'")

models apps orders

class Orders(models.Model):
    serial = models.CharField(max_length=150, blank=True, verbose_name='Серийный')
    uuid = models.ManyToManyField('RelatedUuid')

class RelatedUuid(models.Model):
    related_uuid = models.CharField(max_length=25, verbose_name='uuid', unique=True)

models apps storehouses

class StoreRelated(models.Model):
    name = models.CharField(max_length=150, blank=True, verbose_name='Склад')
    uuid = models.ManyToManyField('RelatedUuid')

class RelatedUuid(models.Model):
    related_uuid = models.CharField(max_length=25, verbose_name='uuid', unique=True)

views apps orders

from Storehouse.models import StoreRelated
queryset = Orders.objects.all()
uuid_list = queryset.values_list('uuid__related_uuid', flat=True)
print(uuid_list) # <QuerySet ['aWcSrm955DseQZXip9h9zp', 'aauegVkPk8FkGEtkr8wXaQ']>
store_queryset = StoreRelated.objects.filter(uuid__related_uuid__in=uuid_list) # тут error

что не так? как правильно отфильтровать вторую модель?

queryset = Orders.objects.all()
uuid_list = queryset.values_list('uuid__related_uuid', flat=True)
uuid_list = list(uuid_list)
print(uuid_list) # <QuerySet ['aWcSrm955DseQZXip9h9zp', 'aauegVkPk8FkGEtkr8wXaQ']>
store_queryset = StoreRelated.objects.filter(uuid__related_uuid__in=uuid_list) # тут error

Так попробуй. Джанго возвращает расширенный list, Питон не всегда его понимает

Вернуться на верх