python - Django 模型中的默认过滤器

标签 python django model

是否可以在 Django 模型中设置默认过滤器?

类似于:

class MyModel(models.Model):
    timestamp = models.DateTimeField(default=datetime.utcnow)
    active = models.BooleanField(default=True)

    class Meta:
        ordering = ['-timestamp']
        filtering = [active=True]

最佳答案

您必须覆盖 manager :

class MyModelManager(models.Manager):
    def get_queryset(self):
        return super(MyModelManager, self).get_queryset().filter(active=True)

class MyModel(models.Model):
    timestamp = models.DateTimeField(default=datetime.utcnow)
    active = models.BooleanField(default=True)

    objects = MyModelManager()

    class Meta:
        ordering = ['-timestamp']

get_queryset 在 Django 1.6 之前是 get_query_set

关于python - Django 模型中的默认过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14925090/

相关文章:

ruby-on-rails - 模型中的 Rspec Ruby on Rails 测试文件系统

asp.net-mvc - 如何在 mvc 中添加 bool 必需属性?

python - Kafka Python 消费者 API 不返回任何内容

python - 将元素追加到 Python 字典的多个键

python - 如何构造解压缩以空字符结尾的字符串?

django - 如何使用 django 表单/模型来表示字段之间的选择?

php - Laravel:嵌套 Controller 并使父 Controller 重定向到子 Controller ?

python - UTF-8 Selenium 错误

Django CMS app-hook - 如何设置标题?

python - Bootstrap 链接不正确