Моя модель продукта имеет две различные связи с моделью категории:
- Один к одному
- Один ко многим через таблицу ProductShadowCategory.
ТеперьСитуация, когда я пытался получить данные, используя второе отношение, я получаю результат от моего первого отношения.
Например, вот что я пытаюсь напечатать:
Category.objects.get(slug="root").shadow_products.all()
, но этопреобразует в следующий sql:
print(Category.objects.get(slug="root").shadow_products.all().query)
SELECT `product_management_product`.`id`, `product_management_product`.`slug`, `product_management_product`.`category_id`, `product_management_product`.`brand_id` FROM `product_management_product` WHERE `product_management_product`.`category_id` = 720
Мои модели выглядят следующим образом:
class Category(SlugableModel):
#...
shadow_products = models.ManyToManyField("product_management.Product", through="product_management.ProductShadowCategory")
class Product(SlugableModel):
#...
category = models.ForeignKey(Category,on_delete=models.CASCADE, related_name="products", validators=[leaf_category])
class ProductShadowCategory(MyModel):
category = models.ForeignKey(Category,on_delete=models.CASCADE)
product = models.ForeignKey(Product,on_delete=models.CASCADE)
class Meta:
unique_together = ('category', 'product')