给定Django模型
class Sub(models.Model):
name = models.CharField(max_length=100)
size_in_inches = models.IntegerField(default=6)
class TunaSub(Sub):
fish_ingredient = models.CharField(max_length=10, default="Tuna")
class MeatballSub(Sub):
meat_ingredient = models.CharField(max_length=20, default="Meatball with Cheese")
我想访问一个__str__
方法的超类的属性(在Python 3.x中)。我该怎么办?这是正确的解决方案吗?
class TunaSub(Sub):
fish_ingredient = models.CharField(max_length=10, default="Tuna")
def __str__(self):
return self.super().name
class MeatballSub(Sub):
meat_ingredient = models.CharField(max_length=20, default="Meatball with Cheese")
def __str__(self):
return self.super().name
既然你延长Sub
,name
也是两者的领域TunaSub
和MeatballSub
。所以你可以简单地使用
def __str__(self):
return self.name
作为一个方面说明,既然要扩展一个具体的模型,你实际上在数据库(名为创建三个单独的表sub
,tuna_sub
以及meatball_sub
它们通过一个一对一的关系连接)。如果您只想在其中重用字段定义,sub
而不是真正为其创建表,请使用抽象基模型类。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句