0

我正在尝试构建一个复杂的查询集,从而与其他表连接。让我感到兴奋的是,当我打印 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 打印的内容相匹配,并且相同。

4

0 回答 0