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

Django,从模型方法查询过滤

昝成弘
2023-03-14
问题内容

我有以下模型:

def Foo(Models.model):
    size = models.IntegerField()
    # other fields

    def is_active(self):
         if check_condition:
              return True
         else:
              return False

def Bar(Models.model):
     foo = models.ForeignKey("Foo")
     # other fields

现在,我要查询具有活动Foo的Bar:

Bar.objects.filter(foo.is_active())

我收到诸如以下错误

SyntaxError at /
('non-keyword arg after keyword arg'

我该如何实现?


问题答案:

你不能查询模型方法或属性。你可以在查询中使用其中的条件,也可以使用列表推导或Genex在Python中进行过滤。



 类似资料:
  • 在我的应用程序中,我有多种型号,如: 模型。py: 正如你所看到的,一个公司可以包含一个、多个或没有同事!是否可以查询公司,但也可以从相关同事处接收数据?例如,类似这样的事情: 我的问题是,我不能在同事上查询,因为我不想错过那些没有相关数据的公司! 谢谢你的帮助,祝你度过愉快的一天!

  • 如何在Django中查询/筛选并忽略查询字符串的大小写? 我得到了一些类似于并且类似于忽略:

  • 问题内容: 如何在Django中查询/过滤并忽略查询字符串的大小写? 我有类似的事情,并且喜欢忽略以下情况: 问题答案: 我这样解决了: 甚至可以使用它来进行子字符串搜索:

  • 查询集表示从数据库中获取的对象集合 查询集可以含有零个、一个或多个过滤器 过滤器基于所给的参数限制查询的结果 从Sql的角度,查询集和select语句等价,过滤器像where和limit子句 接下来主要讨论如下知识点 查询集 字段查询:比较运算符,F对象,Q对象 1. 查询集 在管理器上调用过滤器方法会返回查询集 查询集经过过滤器筛选后返回新的查询集,因此可以写成链式过滤 惰性执行:创建查询集不会

  • 问题内容: 我需要从Django模板中执行过滤查询,以获取与视图中的python代码等效的一组对象: 在我的模板中,我想做 但我似乎无法找出如何编写FILTER。 问题答案: 你不能这样做,这是设计使然。Django框架的作者打算将表示代码与数据逻辑严格分开。过滤模型是数据逻辑,而输出HTML是表示逻辑。 因此,你有几种选择。最简单的方法是进行过滤,然后将结果传递给。或者,你可以在模型中编写一个方

  • 问题内容: 我想做的是这样的: 获得得分最高的30位作者() 订购作者 last_name 问题答案: 关于什么 在Django 1.4及更高版本中,你可以通过提供多个字段进行订购。 参考:https : //docs.djangoproject.com/en/dev/ref/models/querysets/#order-by order_by(字段) 默认情况下,a返回的结果由模型的Meta中