Как исправить ошибку prefetch_related() для моделей Brand2 и Clients, ругается на clt1?

Ошибка: Cannot find 'clt1' on Product object, 'clt1' is an invalid parameter to prefetch_related() Вопрос: Как исправить ошибку prefetch_related() для моделей Brand2 и Clients, ругается на clt1?

models

class Clients(models.Model):
    STATUS_CHOICES = (
        (0, 'Не действует'),
        (1, 'Действует'),
    )
    client_id = models.ForeignKey(ListUsers, on_delete=models.CASCADE, verbose_name='ID клиента')
    mf_id =  models.IntegerField(verbose_name='ID бренда')
    k_up = models.FloatField(default=1, verbose_name='Наценка к цене закупа')
    k_dn = models.FloatField(default=1, verbose_name='Скидка к цене продажи')
    published = models.IntegerField(default=1, blank=True, choices=STATUS_CHOICES,  verbose_name='опубликован')
    updated = models.BooleanField(default=False, editable=False, blank=True, verbose_name='Обновляется')

    class Meta:
         ordering = ('client_id',)
         verbose_name = 'Индивиуальная скидка на производителя1'
         verbose_name_plural = 'Индивиуальные скидки на производителя1'
         unique_together = ('client_id', 'mf_id',)

    def __str__(self):
        return f'{self.client_id}'

class Brand(models.Model):
    STATUS_CHOICES = (
        (0, 'Не опубликовано'),
        (1, 'Опубликовано'),
    )
    brand_id = models.IntegerField(primary_key=True, db_index=True, unique=True, verbose_name='ID')
    name = models.CharField(max_length=200, unique=True, db_index=True, verbose_name='Наименование в своем прайсе')
    slug = models.SlugField(max_length=200, db_index=True, blank=True, unique=True, verbose_name='URL')
    clt1 = models.ManyToManyField(Clients, through="Brand2" )
    published = models.IntegerField(default=1, blank=True, choices=STATUS_CHOICES, verbose_name='опубликован')
    updated = models.BooleanField(default=False, editable=False, blank=True, verbose_name='Обновляется')
    class Meta:
        ordering = ('name',)
        verbose_name = 'Бренд'
        verbose_name_plural = 'Бренды'

    def __str__(self):
            return self.name

    def get_absolute_url(self):
        return reverse('brand', kwargs={'brand_id': self.pk})

class Brand2(models.Model):
    STATUS_CHOICES = (
        (0, 'Не действует'),
        (1, 'Действует'),
    )
    brand_id = models.ForeignKey(Brand,  on_delete=models.CASCADE, verbose_name='ID бренда')
    clients_id =  models.ForeignKey(Clients,  on_delete=models.CASCADE, verbose_name='ID клиента')
    published = models.IntegerField(default=1,  blank=True, choices=STATUS_CHOICES, verbose_name='опубликован')
    updated = models.BooleanField(default=False, editable=False, blank=True, verbose_name='Обновляется')

    class Meta:
         ordering = ('clients_id',)
         verbose_name = 'Индивиуальная скидка на производителя2'
         verbose_name_plural = 'Индивиуальные скидки на производителя2'
         unique_together = ('brand_id', 'clients_id')


    def __str__(self):
        return f'{self.clients_id}'

class Product(models.Model):
    STATUS_CHOICES = (
        (0, 'Не опубликовано'),
        (1, 'Опубликовано'),
    )
    STATUS_NEW = (
        (0, 'Нет'),
        (1, 'Да'),
    )
    id_p = models.BigIntegerField(primary_key=True, db_index=True, unique=True, verbose_name='ID продукта')
    artikul = models.CharField(max_length=200, db_index=True, blank=True, verbose_name='Артикул')
    brend = models.CharField(max_length=200, db_index=True, blank=True, verbose_name='Бренд для поиска')
    analog = models.CharField(max_length=255, blank=True, verbose_name='Аналоги артикула')
    category = models.ForeignKey(Category,blank=True, on_delete=models.CASCADE, related_name='products', verbose_name='Категория')
    brand = models.ForeignKey(Brand, on_delete=models.PROTECT, verbose_name='Бренд')

class Meta:
        ordering = ('product_time', 'name')
        index_together = (('id_p'),)
        verbose_name = 'Продукт'
        verbose_name_plural = 'Продукты'
 def __str__(self):
        return f'{self.id_p}'

    def get_absolute_url(self):
        return reverse('shop:product_detail',
                       args=[self.category.category_id, self.id_p])

views

products = Product.objects.filter(id_p__in=pages_id, published=True).select_related('brand', 'category','product_sklad').prefetch_related(Prefetch('clt1', queryset=Brand2.objects.select_related('brand_id',  'clients_id')))

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