我正在尝试更改Django模型的行为,以允许我直接从父级访问外键的属性,例如
cache.part_number
vs
cache.product.part_number
Run Code Online (Sandbox Code Playgroud)
我尝试重写该__getattr__方法如下,但当我尝试访问外键的属性时,我收到一个递归错误
class Product(models.Model):
part_number = models.CharField(max_length=10)
...
class Cache(models.Model):
product = models.ForeignKey(Product)
...
def __getattr__(self, name):
value = getattr(self.product, name, None)
if value:
return value
else:
raise AttributeError
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?