Я пытаюсь изменить поведение модели Django, чтобы позволить мне получить доступ к свойствам внешнего ключа напрямую от родителя, например
cache.part_number
vs
cache.product.part_number
Я попытался переопределить метод __ 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
Что я делаю не так?