Модель посредника не имеет поля

Я новичок в мире Django Я создаю веб-приложение для управления товарами в интернет-магазине. Я создал модели для каталогов и продуктов. вот мои модели :

from django.db import models

# Create your models here.


class Category(models.Model):
    name = models.CharField(max_length=255, unique=True, )
    description = models.TextField(max_length=1500)


    def __str__(self):
        return self.name


class Product(models.Model):

    name = models.CharField(max_length=255)
    description = models.TextField()
    nominal_price = models.PositiveIntegerField(verbose_name='prix normal',)
    reduced_price = models.PositiveIntegerField(blank=True, null=True)
    categories = models.ManyToManyField('Category', through='CategoryProducts', through_fields=('category','product'))

    def __str__(self):
        return self.name


class CategoryProducts(models.Model):
    category = models.ForeignKey(Category, on_delete=models.CASCADE, )
    product = models.ForeignKey(Product, on_delete=models.CASCADE, )

Поле through_fields=… [Django-doc] упорядочено так, что первый элемент - это поле, которое ссылается на исходную модель: модели, в которой вы определяете ManyToManyField, а второй - целевой модели : модели, на которую ссылается ManyToManyField, поэтому вы определяете их так:

class Product(models.Model):
    # …
    categories = models.ManyToManyField(
        'Category',
        through='CategoryProducts',
        through_fields=('product', 'category')
    )
Вернуться на верх