【发布时间】:2012-09-03 11:05:13
【问题描述】:
我的一个模型有一个已删除标志,用于全局隐藏对象:
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 管理模块使用的默认查询集以包含已删除的对话?
【问题讨论】:
-
您真的需要自定义管理器来处理这些简单的查询吗?
-
是的,删除的对象应该被普遍忽略(管理页面除外),因此设置默认值是有意义的。
标签: django django-models django-admin