Модель посредника не имеет поля
Я новичок в мире 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')
)