访问Django模型的超类

布莱恩黑蜂

给定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
塞尔丘克

既然你延长Subname也是两者的领域TunaSubMeatballSub所以你可以简单地使用

def __str__(self):
    return self.name

作为一个方面说明,既然要扩展一个具体的模型,你实际上在数据库(名为创建三个单独的表subtuna_sub以及meatball_sub它们通过一个一对一的关系连接)。如果您只想在其中重用字段定义,sub而不是真正为其创建表,请使用抽象基模型类

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章