我正在尝试构建一个复杂的查询集,以便与其他表连接。这里让我感到困惑的是,当我打印queryset.query时能够看到查询但是当我从我的代码中调用它时它返回没有结果。
class CarManager(models.Manager):
def get_query_set(self):
return super(CarManager, self).get_query_set().filter(version_to__isnull=True)
def my_cars(self, language, user):
qs=self.extra(
select = {
'make_display' : '`%s`.`%s`' % (ModelLookUpI18n._meta.db_table, ModelLookUpI18n._meta.get_field('make_display').column),
'model_display' : '`%s`.`%s`' % (ModelLookUpI18n._meta.db_table, ModelLookUpI18n._meta.get_field('model_display').column),
'trim_display' : '`%s`.`%s`' % (ModelLookUpI18n._meta.db_table, ModelLookUpI18n._meta.get_field('trim_display').column),
},
tables = [
'`%s`' % ModelLookUpI18n._meta.db_table,
],
where = [
'`%s`.`%s` = `%s`.`%s`' % (ModelLookUpI18n._meta.db_table, ModelLookUpI18n._meta.get_field('model').column, ModelLookup._meta.db_table, ModelLookup._meta.get_field('id').column),
"`%s`.`%s`='%s'" % (ModelLookUpI18n._meta.db_table, ModelLookUpI18n._meta.get_field('language').column, language)
]
).select_related().filter(created_by=user).order_by('-created_at')
print qs.query # prints the SQL statement
print qs # always prints []
return qs
当我复制在控制台中打印的查询并将其粘贴到mySQL终端时,我会记录21条记录,这对我来说非常正常。但是,查询集总是空的,有关如何进一步调试的任何想法?
哦,我甚至监视MYSQL执行日志,以确保引擎的内容与qs.query及其相同的内容相匹配。