【发布时间】:2020-12-24 03:14:17
【问题描述】:
对我来说,了解有关 Django ORM 内部如何使用 SQL 语言的文档并不清楚或缺少示例代码。
我的预期 SQL 是:
SELECT projects_category.id, projects_category.name, projects_project.name
FROM projects_category
JOIN projects_project_categories
ON projects_category.id = projects_project_categories.project_id
JOIN projects_project
ON projects_project_categories.project_id=projects_project.id
WHERE NOT projects_project.is_mini ORDER BY projects_category.id;
如何在 Django ORM 或 Django 视图中做同样的事情? 我已经尝试过过滤和排除(可能使用了错误的参数......),但它似乎没有根据输出工作。除了这两个之外,可能还有更多选择。
此外,任何其他技巧都可以理解。
我的相关模型如下:
class Project(models.Model):
name = models.CharField(max_length=100)
is_mini = models.BooleanField(default=False)
categories = models.ManyToManyField('Category', blank=True)
def __str__(self):
return self.name
class Category(models.Model): # will be used for search
name = models.CharField(max_length=100)
def __str__(self):
return self.name
我想获取包含非迷你项目集的类别集的查询集
【问题讨论】:
-
您能提供与此相关的 django 模型吗?
标签: django django-queryset django-database