是否可以在 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/