neo*_*ser 2 python django django-models
我试图在抽象模型上覆盖 save() 函数,但出现错误
Manager isn't accessible via Entry instances
Run Code Online (Sandbox Code Playgroud)
因此,如果可能,您如何覆盖抽象模型上的保存功能。从这个扩展的模型是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
Run Code Online (Sandbox Code Playgroud)
(对于那些熟悉的人,我Entry在 zinnia-blog 上扩展了模型,但认为这无关紧要)
self.__class__().objects应该是self.__class__.objects。
请参阅有关检索对象的说明:http : //docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-objects
管理器只能通过模型类访问,而不是从模型实例访问,以强制分离“表级”操作和“记录级”操作。