django强制查询别名

时间:2018-09-12 10:55:42

标签: json django oracle django-models

我正在为json编写一个自定义的Oracle Django字段,并使其工作在后端。 Requires 表名必须使用别名。即

这将起作用:

select t.col1.x from table_name t where t.col1.y >2

这不会:

select col1.x from table_name  where col1.y >2

这也不会:

select table_name.col1.x from table_name  where table_name.col1.y >2

是否存在可以在字段上设置的标志等,还是在后端强制设置表别名?

我当前的解决方法是将表连接到自身,然后强制使用别名,但这有点麻烦。

class CustomQueryManager(models.Manager):

    def filter_special(self, *args, **kwargs):

        base_q = super().filter(*args, **kwargs)
        return self.filter(id__in=base_q.values_list('id', flat=True))

理想情况下,我只想使用标准的MyModel.objects.filter方法而不必强制进行自我联接,而无需在管理器上使用自定义的filter_special方法。

0 个答案:

没有答案