首页 > 解决方案 > 草稿帖子:自定义管理器仅提取已发布的帖子,但在管理站点中我需要所有帖子

问题描述

Django 3.0.8

class PublishedManager(models.Manager):
    def get_queryset(self):
        return super().get_queryset().filter(draft=False)


class Post(models.Model):
    published = PublishedManager()
    ...

问题 在管理站点草稿现在不可见。这似乎是合理的:

Post.published.all()
<QuerySet []>

但是如何在管理员中显示所有帖子?

标签: djangodjango-models

解决方案


可以这样实现:

class Post(models.Model):
    published = PublishedManager()
    objects = models.Manager()

每次您需要同时使用已发布和草稿对象时,请使用Post.objects管理器。


推荐阅读