(django)获取子类的查询

时间:2017-04-30 13:26:26

标签: django inheritance python-object

我有一个像这样的超级课程:

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
  3. 如何解决这个问题?

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

1 个答案:

答案 0 :(得分:0)

这应该有效:

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