-1
我正在关注一个关于使用cutom模型管理器的django教程,但无法弄清楚为什么这不起作用。自定义模型管理器不能正常工作
我正在尝试使用自定义模型管理器来过滤仅在数据库中标记为活动的帖子,因此它不会显示尚未完成的帖子。
模型管理器
class PostManager(models.Manager):
def get_query_set(self):
return super(PostManager, self).get_query_set().filter(is_active=True)
模型
class Post(models.Model):
title = models.CharField(max_length = 100)
description = models.TextField(max_length = 500)
body = models.TextField(blank = True)
created = models.DateTimeField(auto_now_add = True)
modified = models.DateTimeField(auto_now_add = True)
is_active = models.BooleanField(default = 1)
allow_comments = models.BooleanField(default = 1)
category= models.ForeignKey(Category)
creator = models.ForeignKey(User)
slug = models.SlugField(unique = True)
active = PostManager() #Gets just the active posts
objects = models.Manager()
然后我尝试使用posts= Post.active.all()
我们筛选活动帖子,如果我改变了对posts = Post.active.filter(is_active=True)
它的工作原理和过滤器只是活动的帖子,但我没有一个自定义管理器可以做到这一点。不,了解这里发生了什么。
工作,这是从早期版本的Django改变了吗?它曾经是get_query_set。我正在按照一个较老的教程。 – Pythonista
我认为这在'Django 1.6'中被改变了。 –