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



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 []>

但是如何在后台显示所有帖子呢?

它可以这样实现:

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

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

最新更新