当前位置: 首页 > 面试题库 >

Django-过滤外键属性

华泽语
2023-03-14
问题内容

我正在尝试根据的特定字段的值过滤Django中的表ForeignKey

例如,我有两个模型

class Asset(models.Model):
    name = models.TextField(max_length=150)
    project = models.ForeignKey('Project')

class Project(models.Model):
    name = models.TextField(max_length=150)

我想根据相关项目的名称过滤我的资产列表。

目前,我正在执行两个查询:

project_list = Project.objects.filter(name__contains="Foo")
asset_list = Asset.objects.filter(desc__contains=filter,
                                  project__in=project_list).order_by('desc')

我想知道是否有一种方法可以在主查询中指定这种过滤?


问题答案:
Asset.objects.filter( project__name__contains="Foo" )


 类似资料:
  • 问题内容: 我想通过串联字符串过滤某些数据库对象。 正常的SQL查询为: 在模型中,我创建了一个名为PersonObjects的管理器: 我也在我的模型中配置了这个: 现在,访问fullName可用于单个对象: 但这在过滤器中不起作用: 这是错误还是功能?我怎样才能解决这个问题? 谢谢。 问题答案: 这不是错误。仅检查模型定义,因此不会将其识别为已声明的字段(因为它不是-这是查询中的额外参数)。

  • 问题内容: 我有以下Django模型: 我想知道是否有可能(无需直接编写SQL)生成一个查询集,其中包含所有Makes和每个人的相关。 问题答案: Django不支持反向外键查找的方法,因此,最好的方法是在不离开Python的情况下进行两个数据库查询。第一个是获取包含的所有内容,第二个是获取所有的内容。然后,你必须遍历并按需要排列数据。

  • 问题内容: 我正在使用Django的内置用户模型,并且具有一个自定义Foo对象,并带有一个用户外键。我正在寻找选择所有User对象和所有符合某些约束的Foo对象,例如: 我应该如何在Django中完成这项工作?到目前为止,我已经尝试过: 但这会生成类似于以下内容的SQL: 并且仅返回具有符合条件的Foo对象的User对象。或者,我可以选择所有User对象并为每个对象运行一个查询,但是效率会大大降低

  • 问题内容: 我有一个带有自引用外键关系的模型: 现在,我想为一个人获得所有多层次的孩子。如何为它编写Django查询?它需要表现得像递归函数。 问题答案: 你可以随时向模型添加递归函数: 编辑:根据韩善基更正 (如果你有大量的递归或数据,请不要使用它。) 仍然建议errx建议的mptt。

  • 问题内容: 我开始使用django-tables2(从第一印象中就可以强烈推荐),我问自己如何实现列过滤。我找不到合适的文档,但是我确定它在那里。 问题答案: 答案有点晚了,但是无论如何…我也找不到任何合适的文档来进行列过滤。有很多方法可以做到这一点: 答:手动:我添加了一个包含要过滤的字段的表单,然后在我的视图中执行以下操作: 这很好用,但是不是那么干,因为它在视图中是硬编码的。 B.使用Sin

  • 问题内容: 一般来说,我对Web应用程序和数据库内容还是陌生的,所以这可能是一个愚蠢的问题。我想制作一个模型(“ CategoryModel”),其字段指向模型的另一个实例(其父实例)的主要ID。 我该怎么做呢?谢谢! 问题答案: 您可以将模型的名称作为字符串传递给ForeignKey,它将做正确的事情。 所以: 或者您可以使用字符串“ self”