我的一个模型都有一个删除标志,它被用来在全球范围内隐藏的对象:覆盖默认查询集
class NondeletedManager(models.Manager):
"""Returns only objects which haven't been deleted"""
def get_query_set(self):
return super(NondeletedManager, self).get_query_set().exclude(deleted=True)
class Conversation(BaseModel):
...
deleted = models.BooleanField(default=False)
objects = NondeletedManager()
all_conversations = models.Manager() # includes deleted conversations
我如何可以覆盖Django管理模块用于包括删除对话的默认查询集?
您是否真的需要这些简单查询的自定义管理器? –
是的,删除的对象应该被普遍忽略(管理页面除外),所以设置默认值是有意义的。 –