【问题标题】:(django) get query of child class(django) 获取子类的查询
【发布时间】:2017-04-30 13:26:26
【问题描述】:

我有一个像这样的超类:

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时,我不想得到@的实例987654324@.

如何解决?

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

【问题讨论】:

    标签: django inheritance python-object


    【解决方案1】:

    这应该可行:

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

    【讨论】:

    • 我是由type(self).objects 制作的,但我认为是一样的。
    猜你喜欢
    • 1970-01-01
    • 2012-03-02
    • 2021-12-10
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 2011-10-25
    • 2016-07-15
    • 2022-01-05
    相关资源
    最近更新 更多