我的产品模型与类别模型有两种不同的关系:
现在的情况是,当我尝试使用第二种关系进行获取时,我正在从第一种关系中获取结果。
例如,这就是我要打印的内容:
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')