有没有办法对Django模型进行全局过滤?我们需要在一个地方设置一个过滤器,这样它就可以应用到Django ORM生成的所有查询中,包括相关的对象查找等。例如:
class A(Model):
n = IntegerField()
class B(Model):
a = ForeignKey(A)
我们想设置一个全局过滤器id_ugte=10(静态以使其更简单)。在进行相关查询时,也必须自动应用过滤器,例如
^{pr2}$以某种方式神奇地扩展到
B.objects.filter(a__n=123, a__id__gte=10)
我们可以更改模型、管理器、查询集,但不能更改实际查询对象的代码(大量代码、第三方应用程序、通用API)。在
您应该创建一个自定义管理器并修改初始的
QuerySet
。签出the docs。在然后应该使用自定义管理器(
dahl_objects
)而不是objects
,所有查询都将被修改。在或者可以重写
objects
管理器本身用过滤器在数据库中创建一个视图,然后创建一个指向该视图的Django模型呢?在
相关问题 更多 >
编程相关推荐