我有以下django模型关系:

class Project(models.Model):
    pass 
class Vehicle(models.Model):
    project=ForeignKey(Project) 
class Concept(models.Model):
    vehicle=ManyToManyField(Vehicle) 
class Analysis(models.Model):
    concept=ForeignKey(Concept)

我想对所有连接到具有已知id的项目的分析对象进行排序.

谢谢

推荐答案

你可以通过以下方式获得.filter(…) [Django-doc]分:

Analysis.objects.filter(concept__vehicle__project_id=project_id)

Concept可能有许多Vehicle指向同一个Project,在这种情况下,Analysis将被复制.您可以使用.distinct() [Django-doc]来防止这种情况:

Analysis.objects.filter(concept__vehicle__project_id=project_id).distinct()

Note:因为ManyToManyField指的是collection个元素,

Django相关问答推荐

批量删除多对多条目?

如何在Django上创建ManyToMany管理面板?

获取PyCharm中继承方法的未解析属性引用

无法在views.py django中验证密码

在Django上传JPEG图像时遇到问题

django.template.response.ContentNotRenderedError: 必须渲染响应内容才能迭代

Django:获取每组最新的N条记录

在Django Rest Framework中按模型属性排序时如何避免重新计算?

在 python 视图中检测移动浏览器

Django 模型命名约定

从python中的URL获取查询字符串的最佳方法?

Django BigInteger自动增量字段作为主键?

Django - 如何从模型实例中获取管理员 URL

如何创建一个在复选框右侧显示复选框标签的 Django 表单?

Django:如何过滤属于特定组的用户

Table doesn't exist表不存在

Django 应用程序运行良好,但收到 TEMPLATE_* 警告消息

防止 django 管理员转义 html

从 git 存储库中删除并忽略所有具有扩展名的文件

ValueError: 无法解析相关模型 u'app.model'