扩展模型行为

时间:2019-09-18 14:01:54

标签: django

在django中,我试图扩展models.Model类的行为。

我想将代码作为模型init执行,并使用默认的init。

这是我到目前为止的代码,看起来就像我想做的一样,但是行为不正确。

class DirtyModel(models.Model):
    def __init__(self, *args, **kwargs):
        super(DirtyModel, self).__init__(*args, **kwargs)
        print("extended")

class Foo(DirtyModel):
    bar = models.TextField()

这段代码试图创建一个名为DirtyModel的模型,我理解为什么,但是我不认为我知道如何扩展Model类。

我应该如何创建自定义模型。要在模型中使用的Model类?

1 个答案:

答案 0 :(得分:2)

  

我应该如何创建自定义模型。要在模型中使用的Model类?

根据您的评论,您可能想创建一个抽象超类:

$("#athletic-group-dropdown ul:first-child").addClass("overview-switch").find("a").text("Overview");

通过不设置class DirtyModel(models.Model): def __init__(self, *args, **kwargs): super(DirtyModel, self).__init__(*args, **kwargs) print("extended") class Meta: abstract = True,Django将在此处创建abstract = TrueDirtyModelFoo的{​​{1}}和OneToOneField模型

如果将其抽象化,基本上就是说不能构造DirtyModel本身,而只能构造一些非抽象子类。