gpt4 book ai didi

django - 覆盖 Django 管理中的默认查询集

转载 作者:行者123 更新时间:2023-11-28 19:33:22 24 4
gpt4 key购买 nike

我的一个模型有一个 deleted 标志,用于全局隐藏对象:

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 管理模块使用的默认查询集以包含已删除的对话?

最佳答案

您可以 override get_queryset模型管理类中的方法。

class MyModelAdmin(admin.ModelAdmin):
def get_queryset(self, request):
qs = super().get_queryset(request)
if request.user.is_superuser:
return qs
return qs.filter(author=request.user)

注意在 Django<=1.5 中该方法被命名为 queryset

关于django - 覆盖 Django 管理中的默认查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12354099/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com