我尝试重写抽象模型上的 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-blog 上的 Entry
模型,但认为这不相关)
最佳答案
self.__class__().objects
应该是 self.__class__.objects
。
请参阅有关检索对象的注释:http://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-objects
Managers are accessible only via model classes, rather than from model instances, to enforce a separation between "table-level" operations and "record-level" operations.
关于python - Django:重写抽象模型的 save() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5161805/