0

我有一个像这样的超级类:

class Superclass(models.Model):
 number = models.PositiveIntegerField()

 class Meta:
  abstract = True

 def get_next(self):
  return Superclass.objects.get(number=self.number+1)

现在,我有一个继承自超类的子类。

有什么问题?

  1. 我不能这样做:Superclass.objects因为超类不引用任何数据库表。
  2. 我不想查询所有超类子类,只查询当前子类中的一个,如下所示:当我这样做时,instance_of_child1.get_next我不想获取Child2.

如何解决这个问题?

  • 我的第一个想法是向包含该类的任何子类添加一个静态常量(所以我可以这样做self.myclass.objects)但这似乎不是一个好方法。
  • 使该方法get_next成为子类的一部分。问题:会有重复。
4

1 回答 1

0

这应该有效:

def get_next(self):
    return self.__class__.objects.get(number=self.number+1)
于 2017-04-30T14:44:18.393 回答