在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类?
答案 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 = True
和DirtyModel
到Foo
的{{1}}和OneToOneField
模型
如果将其抽象化,基本上就是说不能构造DirtyModel
本身,而只能构造一些非抽象子类。