Meu modelo de django juntar campos errados quando há vários campos relacionados com junte

votos
0

Meu modelo de produto tem dois relação diferente com o modelo categoria:

  1. Um a um
  2. Um para muitos através da tabela ProductShadowCategory.

Agora a situação é quando eu tentei buscar usando o segundo relacionamento, eu estou recebendo o resultado do meu primeiro relacionamento.

Por exemplo, este é o que eu estou tentando impressão:

Category.objects.get(slug=root).shadow_products.all()

mas converte a seguinte 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

Meus modelos parece seguinte:

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')
Publicado 20/09/2018 em 04:16
fonte usuário
Em outras línguas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more