【发布时间】:2021-06-12 18:30:41
【问题描述】:
我正在寻找一种高效的模型管理器方法,它使用以下类结构来生成 QuerySet,如下所述:
#models.py
from django.db import models
class SuperModel(models.Model):
date_of_interest = models.DateField(...)
# <other model_fields>
class SubA(SuperModel):
# <other model_fields>
class SubB(SuperModel):
# <other model_fields>
class SubC(SuperModel):
# <other model_fields>
#somewhere else (eg. views.py)
...
query_set = SuperModel.objects.filter(date_of_interest=today)
qs_to_list = [e for e in query_set if hasattr(e, 'subb') or hasattr(e, 'subc')]
我想将 qs_to_list 保留为 QuerySet,因此我正在寻找一种方法来根据子类的类型使用模型管理器方法进行过滤。如上所述,我是将多表继承与abstract=False 一起使用,并隐式使用使用这种继承类型创建的OneToOneField。
谢谢!
【问题讨论】:
标签: django django-models django-queryset