我的Django模型中有一个抽象类,它有一些孩子。我的父模型中有一个方法如下:
def get_info(self):
return {
'name': self.name,
'username': self.username,
'about': self.about,
}
我想在我的子类中添加一些额外的字段到这本字典中。如何获取父输出添加一些字段并返回结果。(在子方法中具有相同的名称get_info
)
答案 0 :(得分:1)
您应该使用super().get_info
来访问父类的方法,它将根据方法解析顺序(MRO)找到父类。
如果您有多个父级,请指定要从该方法调用哪个父级。
super(SpecifyParent, self).get_info
答案 1 :(得分:1)
您可以继承子类中的函数,调用超类函数,然后更新父类返回的字典
class A:
def get_info(self):
return {
'name': self.name,
'username': self.username,
'about': self.about
}
class B(A):
def get_info(self):
data = super(B, self).get_info()
data.update({
'b_attribute': self.something
})
return data
答案 2 :(得分:-2)
def get_info(self):
return self.name, self.username, self.about
或
def get_info(self):
return {
'name': self.name,
'username': self.username,
'about': self.about
}
没有最终的逗号