我试图在抽象的模型上覆盖save()函数,并且收到错误
Manager isn't accessible via Entry instances
因此,如果可能,如何覆盖抽象模型上的保存功能。从此扩展的模型是Entry
这是我的模型代码:
class EntryBlog(EntryAbstractClass):
groups = models.ManyToManyField(group, null=True, blank=True)
def save(self, *args, **kwargs):
if self.featured:
self.__class__().objects.all().update(featured = False)
super(EntryBlog, self).save(*args, **kwargs)
class Meta:
abstract = True
(对于那些熟悉的人,我正在zinnia博客上扩展Entry
模型,但不认为这是相关的)
答案 0 :(得分:4)
self.__class__().objects
应为self.__class__.objects
。
在检索对象时查看 Notes :http://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-objects
管理员只能通过模型类访问,而不能通过模型实例访问,以强制“表级”操作和“记录级”操作之间的分离。