【发布时间】:2017-10-05 13:05:11
【问题描述】:
我有旧 django 版本的项目 - 1.5(我知道最好更新到新版本,但现在这不是问题)。
我有与纯 sql 连接的代码 - 我只想拥有来自未来的事件 - 显示在列表中。
这是我的代码 - 我从过去得到事件的某种原因。 我尝试不使用 MIN(date),但出现错误:
用作表达式的子查询返回多于一行
@register.assignment_tag
def get_teasers():
return Teaser.objects.extra(select={'next_activity': 'SELECT MIN(date) FROM productions_activity WHERE productions_activity.production_id = home_teaser.production_id'}).filter(Q(online__lte=now()), Q(online_end__gte=now()) | Q(online_end__isnull=True)).order_by('next_activity')
【问题讨论】:
-
你确定要使用 sql 吗?.. 我没有看到
home_teaser来自或加入 -
@VaoTsun 你现在可以查看代码吗?
-
它可能会执行某种横向子查询?.. 抱歉 - 我不明白
SELECT MIN(date) FROM productions_activity WHERE productions_activity.production_id = home_teaser.production_id'是如何工作的,因为它不应该孤立地工作
标签: python django database postgresql filter