Django ORM - 将此自连接查询转换为ORM

时间:2018-02-09 06:43:40

标签: python mysql django orm

请帮助将此SQL查询转换为Django ORM查询。

select l.* from products l inner join products r on l.category = r.category where r.id = %s

请注意category本身就是一个指向ProductCategory模型的ForeignKey(告诉它对你有用)。此外,如果可能,请将此与此ORM查询结合使用。

Product.objects.prefetch_related('productrecipes', 'farmerprofiles', 'productfeedbacks')

请帮忙。谢谢。

1 个答案:

答案 0 :(得分:1)

假设您希望与给定Product相同类别的所有产品:

 # given product
 product = Product.objects.get(...)
 # products from same category
 related_products = Product.objects.filter(category_id=product.category_id)

然后,您只需添加prefetch_related来电:

 related_products = related_products.prefetch_related(...)