繁体   English   中英

Django:get_queryset() 没有弹出 filter() 方法

[英]Django:get_queryset() is not popping up filter() method

我在我的 Django 项目中写了一个自定义模型管理器,下面的代码是

    from django.db import models
    from django.utils import timezone
    from django.contrib.auth.models import User
    # Create your models here.
    
    
        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, on_delete=models.CASCADE, 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()
        published = PublishedManager()
    
        class Meta:
            ordering = ('-publish',)
    
        def __str__(self):
            return self.title

在命令 shell 中执行Post.published.filter(title__startswith='Who') ,我收到以下错误AttributeError: 'PublishedManager' object has no attribute 'filter'

class CustomManager(models.Manager):
    def get_queryset(self):
        return super().get_queryset().filter(status="published")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM