**#定义一个新的过滤规则,这里是过滤状态为发布的帖子**

**class PublishedManager(models.Manager):**
        **def get_queryset(self):**
               **return super(PublishedManager,self).get_queryset().filter(status='published')**

class Post(models.Model):
        STATUS_CHOICES = (
        ('draft','Draft'),('published','Published'),
        )
        title = models.CharField(max_length=250)
        slug = models.SlugField(max_length=250,unique_for_date='publish')
        author = models.ForeignKey(User,related_name='blog_posts')
        body = models.TextField()
        publish = models.DateTimeField(default=timezone.now)
        created = models.DateTimeField(auto_now_add=True)
        updated = models.DateTimeField(auto_now=True)
        status = models.CharField(max_length=10,choices=STATUS_CHOICES,default='draft')
        **objects = models.Manager()  #默认manager**
        **published = PublishedManager()  #新添加的manager**

class Meta:
                ordering = ('publish',)

def __str__(self):
                return self.title

通过python manager.py shell就可以使用新添加manager:

由于在post添加了新的内容,需要重新引入Post

>>>from blog.models import Post

>>>Post.published.all()

这样就可以过滤出所有发布状态的帖子,并且可以使用Queryset相同的方法:

最新文章

  1. CPU的内部架构和工作原理
  2. 鸡和蛋的OO设计
  3. PHP回调函数的几种用法
  4. URAL 1080 Map Coloring(染色)
  5. 【原】Spark Standalone模式
  6. Xcode常见报错及解决办法
  7. WCF 用netTcpbinding,basicHttpBinding 传输大文件
  8. Android 应用程序签名
  9. MD5算法的原理与实现
  10. MapReduce框架Hadoop应用(一)
  11. LeetCode 203. Remove Linked List Elements 移除链表元素 C++/Java
  12. Linux下的java虚拟机性能监控与故障处理命令
  13. 表单中input name属性有无[]的区别
  14. lfs(systemd版本)学习笔记-第3页
  15. Selenium:利用select模块处理下拉框
  16. replace 将逗号替换~
  17. oracle exp imp日常使用
  18. Ruby:线程实现经典的生产者消费者问题
  19. Java 并发编程常识 —— by 梁飞
  20. 【进阶修炼】——改善C#程序质量(1)

热门文章

  1. python编程——Class(未完成)
  2. nodejs express 框架 上传文件
  3. motionbuilder卸载/完美解决安装失败/如何彻底卸载清除干净motionbuilder各种残留注册表和文件的方法
  4. IOC初始化销毁的2种实现方式
  5. S2SH项目实现分页功能
  6. Archives: 2013/6
  7. POJ 2226 Muddy Fields 二分图(难点在于建图)
  8. 在linux中自动向设备中安装apk包
  9. Problem 43 // Project Euler
  10. 修改android项目sdk版本