假设我有一个模型Parent,它有一个ForeignKey来模型Child:
class Parent(models.Model):
child = models.ForeignKey(Child, related_name='parents')
class Child(models.Model):
some fields here
我知道如果我有一个Parent对象并且想要获取相关的Child对象,我可以简单地使用:
childObj=parent.child
如果尚未加载子级,则上面将向DB发出另一个查询,以在parent.child中实例化Child。
但是,假设每次我想做这样的事情,我也想做一些额外的处理。换句话说,当我调用parent.child时调用的方法是我想要覆盖的方法,所以我可以进行额外的处理。有谁知道这个方法是什么,或者我怎么能做到这一点?
答案 0 :(得分:0)
您可以制作child
财产。
class Parent(models.Model):
_child = models.ForeignKey(Child, related_name='parents')
@property
def child(self):
child = self._child
# extra processing here
return child
class Child(models.Model):
some fields here