Django查询没有引用字段

时间:2015-10-27 18:45:45

标签: django django-queryset

快速概述:

我有一个预测模型设置,其中包含workflow_state。

现在我正在尝试查询预测中所有处于特定状态的预测以及当前登录的人 is_staff。

如果我正在编写原始查询,这不会是一个问题,因为我可以编写类似的内容:

SELECT * FROM forecast WHERE forecast.workflow_state_id in (1,2,3,4) AND 1 = user.is_staff

但是,当尝试在查询集中编写它时,我无法弄清楚如何引用常量。我不想编写原始查询集,如果可能的话,我想避免使用额外的字段。

任何建议将不胜感激。感谢

2 个答案:

答案 0 :(得分:1)

你的常数只是True

Forecast.objects.filter(workflow_state__in=[1,2,3,4], user__is_staf=True)

答案 1 :(得分:1)

您的编辑使事情变得不那么明确,但您似乎在询问如何检查当前登录用户,而不是模型引用的用户。在这种情况下,您根本不在查询中执行此操作;您的示例SQL语句不起作用,也不会在ORM中执行。当然,你是用Python做的:

┌───────────── min (0 - 59)
│ ┌────────────── hour (0 - 23)
│ │ ┌─────────────── day of month (1 - 31)
│ │ │ ┌──────────────── month (1 - 12)
│ │ │ │ ┌───────────────── day of week (0 - 6)
│ │ │ │ │
* * * * *

"0 12 1 * *"