Django如何访问抽象Base模型局部变量

2024-01-07

我将这个抽象基本模型定义如下:

class ActivityAbstractBaseModel(models.Model):
    POOR = 'PR'
    FAIR = 'FA'
    MEDIOCRE = 'ME'
    GOOD_ENOUGH = 'GE'
    GOOD = 'GO'
    VERY_GOOD = 'VG'
    EXCELLENT = 'EX'

    STATE = [
        (POOR, 'Poor'),
        (FAIR, 'Fair'),
        (MEDIOCRE,'Mediocre' ),
        (GOOD_ENOUGH, 'Good Enough' ),
        (GOOD, 'Good'),
        (VERY_GOOD, 'Very Good'),
        (EXCELLENT, 'Excellent'),
    ]

    speaking = models.CharField(max_length=50, choices=STATE, default=GOOD)

然后我继承这个抽象模型,如下所示并添加新字段writing

class Fluency(ActivityAbstractBaseModel):
    writing = models.CharField(max_length=50, choices=STATE, default=GOOD)

现在,这个新领域writing正在尝试访问变量GOOD and STATE这是在抽象类中创建的,但我有NameError例外。有没有办法获取这些变量?


虽然您的类将继承这些类变量,但您不能在定义类的地方直接引用它们(因为它们不存在于该范围内)。相反,您可以将它们称为ActivityAbstractBaseModel.GOOD等在你的类声明中。

class Fluency(ActivityAbstractBaseModel):
    writing = models.CharField(max_length=50, choices=ActivityAbstractBaseModel.STATE, default=ActivityAbstractBaseModel.GOOD)

print(Fluency.GOOD) # This works properly
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django如何访问抽象Base模型局部变量 的相关文章

随机推荐