相关疑难解决方法(0)

使用__getattr__更改Django模型的行为

我正在尝试更改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)

我究竟做错了什么?

python django class

5
推荐指数
1
解决办法
3629
查看次数

标签 统计

class ×1

django ×1

python ×1