【发布时间】:2016-02-23 07:08:46
【问题描述】:
我从 Django 1.4 迁移到 Django 1.8,现在我遇到了一个我不知道如何解决的问题。
当我跑步时:
dd_interface = D_Interface.objects.filter(C_INTERFACE__iexact=interface.c_interface)[:1]
campos = DD_Interface_Campos.objects.filter(dd_interface = dd_interface).order_by('SEQ')
我收到错误:
NotSupportedError(1235, "此版本的 MySQL 尚不支持 'LIMIT & IN/ALL/ANY/SOME 子查询'"))
在 Django 1.4 中。在BD(MySQL)中执行的查询是:
选择dd_interface.id, dd_interface.dd_interface_id,
......来自dd_interface WHERE dd_interface.dd_interface_id = (
选择
U0.id
从
dd_interface_extendU0
在哪里
U0.C_INTERFACE LIKE 'ORACLE.1123.sdas'
限制 1) 由dd_interface.SEQ ASC 订购
在 Django 1.8 中使用了 MySql 5.X 不支持的“IN”子句。
选择
dd_interface.id,
dd_interface.dd_interface_id,
从
dd_interface
在哪里
(dd_interface.dd_interface_id) 输入 (
选择
U0.id
从
dd_interface_extendU0
在哪里
U0.C_INTERFACE LIKE 'ORACLE.1123.sdas'
限制 1)
通过dd_interface.SEQASC 订购
我怎样才能解决这个问题? (对不起我的英语不好)
【问题讨论】:
-
filter(dd_interface=dd_interface)没有意义,其中dd_interface是查询集而不是模型实例。你为什么使用[:1]而不是[0](或者只是.get())?如果第一个查询没有返回任何项目,您希望发生什么?
标签: python mysql django django-1.8 django-1.4