(django) 查询 child class
(django) get query of child class
我有一个像这样的超级class:
class Superclass(models.Model):
number = models.PositiveIntegerField()
class Meta:
abstract = True
def get_next(self):
return Superclass.objects.get(number=self.number+1)
现在,我有一个 child class 继承自 superclass。
有什么问题?
- 我不能这样做:
Superclass.objects
因为 superclass 没有引用任何数据库 table.
- 不想查询全部超classchild只查询当前的child[=44] =],像这样:当我执行
instance_of_child1.get_next
时,我不想获取 Child2
. 的实例
如何解决?
- 我的第一个想法是向任何包含 class 的 child class 添加一个静态常量(这样我就可以做到
self.myclass.objects
)但这似乎是不是个好办法。
- 使方法
get_next
成为 child class 的一部分。问题:会有重复。
这应该有效:
def get_next(self):
return self.__class__.objects.get(number=self.number+1)
我有一个像这样的超级class:
class Superclass(models.Model):
number = models.PositiveIntegerField()
class Meta:
abstract = True
def get_next(self):
return Superclass.objects.get(number=self.number+1)
现在,我有一个 child class 继承自 superclass。
有什么问题?
- 我不能这样做:
Superclass.objects
因为 superclass 没有引用任何数据库 table. - 不想查询全部超classchild只查询当前的child[=44] =],像这样:当我执行
instance_of_child1.get_next
时,我不想获取Child2
. 的实例
如何解决?
- 我的第一个想法是向任何包含 class 的 child class 添加一个静态常量(这样我就可以做到
self.myclass.objects
)但这似乎是不是个好办法。 - 使方法
get_next
成为 child class 的一部分。问题:会有重复。
这应该有效:
def get_next(self):
return self.__class__.objects.get(number=self.number+1)