Python 是否可以覆盖django模型上的.objects?
默认情况下,我只想返回“published”实例(published=True)。是否可以重写.objects,以便MyModel.objects.all()实际返回MyModel.objects.filter(published=True)Python 是否可以覆盖django模型上的.objects?,python,django,filtering,Python,Django,Filtering,默认情况下,我只想返回“published”实例(published=True)。是否可以重写.objects,以便MyModel.objects.all()实际返回MyModel.objects.filter(published=True) 这是否合理?在我确实需要的罕见情况下,如何获取未发布的对象?您可以通过编写一个自定义来实现这一点——只需覆盖get\u queryset方法,并将对象设置为Manager实例。例如: class MyModelManager(models.Manager)
这是否合理?在我确实需要的罕见情况下,如何获取未发布的对象?您可以通过编写一个自定义来实现这一点——只需覆盖
get\u queryset
方法,并将对象设置为Manager实例。例如:
class MyModelManager(models.Manager):
def get_queryset(self):
return super(MyModelManager, self).get_queryset().filter(published=True)
class MyModel(models.Model):
# fields
# ...
objects = MyModelManager()
有关详细信息,请参阅。这是明智的,如果这将是你通常的默认情况。要取消发布,请创建另一个管理器,您可以使用类似于MyModel.unpublished_objects
的方法访问它。同样,文档中也有关于这类事情的例子。答案完全正确。应标记为正确@willcritchlow!如何从MyModel
更新寄存器?当我尝试这样做时,我收到的对象没有属性“bulk\u update”