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

标签 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')

请帮忙。谢谢。

最佳答案

假设您想要与给定 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(...)

关于python - Django ORM - 将此自连接查询转换为 ORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48700137/

相关文章:

python - 以没有毫秒的 ISO 格式打印日期时间

python - 分组并返回所有列

jquery - 将匹配 select2 中的无结果更改为最接近的结果

python - Django 在 url 中加密主键

javascript - Django 的 JSONP 响应

django - 如何解决 Facebook 上的 django 社交身份验证错误?

python - 如何按列表中的属性对对象进行分组和计数?

python - 从元组列表中为每个项目创建 np.arrays 的最快方法

java - 在 Java 中创建 JDBC 连接池

php - 使用 PHP 将 mysqli 查询作为逗号分隔值返回