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

如何在Django模板中执行查询过滤

薄鸿远
2023-03-14
问题内容

我需要从Django模板中执行过滤查询,以获取与视图中的python代码等效的一组对象:

queryset = Modelclass.objects.filter(somekey=foo)

在我的模板中,我想做

{% for object in data.somekey_set.FILTER %}

但我似乎无法找出如何编写FILTER。


问题答案:

你不能这样做,这是设计使然。Django框架的作者打算将表示代码与数据逻辑严格分开。过滤模型是数据逻辑,而输出HTML是表示逻辑。

因此,你有几种选择。最简单的方法是进行过滤,然后将结果传递给render_to_response。或者,你可以在模型中编写一个方法,以便说出来{% for object in data.filtered_set %}。最后,你可以编写自己的模板标签,尽管在这种情况下,我建议你这样做。



 类似资料:
  • 问题内容: 我希望能够列出用户已添加的项目(他们被列为创建者)或已被批准的项目。 所以我基本上需要选择: 我将如何在Django中执行此操作?(最好使用过滤器或查询集)。 问题答案: 有些对象允许进行复杂的查找。例:

  • 我试图使用Django将PostgreSQL表提取到HTML中,当我在PostgreSQL的查询工具中执行空间查询时,我得到了完美的结果,但当我试图从Django执行相同的脚本时,我得到了所有的数据行。谢谢你提前帮忙。 姜戈剧本 HTML

  • 问题内容: 当你事先不知道某个属性的名称时,Python的getattr()方法很有用。 此功能也将在模板中派上用场,但我从未想出实现此目的的方法。是否存在可以执行动态属性查找的内置标记或非内置标记? 问题答案: 最近,我还必须将此代码编写为自定义模板标签。要处理所有查找方案,它首先进行标准的属性查找,然后尝试进行字典查找,然后尝试进行getitem查找(以使列表起作用),然后在对象为对象时遵循标

  • 问题内容: 这可能无关紧要,只是想问一下, 如果一个对象从视图传递到模板,并且在模板中我将能够查询许多字段 型号代码: 观看次数: 在模板中可以解码多对多字段,因为我们正在传递对象 谢谢.. 问题答案: 通常,您可以通过django模板系统中的路径来跟踪任何不带参数的属性或方法调用。 对于上面的视图代码,类似 应该做您期望的。 (我无法完全从代码示例中找出具体细节,但希望这会阐明您可以从模板中学到

  • 问题内容: 我用来从表中获取数据。现在,从称为的表中获取所有记录正在按预期方式工作。 现在,我希望对多个列执行查询,如下所示: 但这给LIKE带来了错误。我怎样才能做到这一点? 问题答案: 请像运营商一样使用 http://docs.sqlalchemy.org/en/rel_0_9/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOpera

  • 问题内容: 在Django模型QuerySets中,我看到比较值存在和,但是存在(不等于?)。 我想使用不等于过滤掉: 例: 我想要 在不正确的语法。我试过。 我最终使用: 问题答案: 也许Q对象可以帮助解决此问题。我从未使用过它们,但似乎可以将它们取反并组合起来,就像普通的python表达式一样。 更新:我只是尝试了一下,它似乎工作得很好: