覆盖属性为Django函数

时间:2016-10-12 05:48:50

标签: python django object django-models attributes

我有class A(models.Model) attr name。我在模板中使用它并以obj_a.name视图。我需要覆盖name attr作为函数,当我写obj_a.name时,我会得到函数getName的响应。如何在DjangoPython中执行此操作? 在Laravel PHP $this->getNameAttribute(),我可以覆盖从对象返回的nameName只是示例,我想在几乎所有attr给定的类中使用它。

class Item(caching.base.CachingMixin, models.Model):
    _name = models.CharField(_('Name'), max_length=100, db_column="name",
                         help_text=_('Item name'))

    @property
    def name(self):
        return self._name

    @name.setter
    def name(self, value):
        self._name = value

2 个答案:

答案 0 :(得分:3)

您可以使用property实现此行为。

class A(models.Model):
    _name = Field()

    @property
    def name(self):
        return self._name

答案 1 :(得分:0)

我发现解决方案非常适合我的用法:

console.log($scope.lyrics.id); // show Undefined