你如何拥有一个名为" property"并使用@property装饰器?

时间:2014-07-18 07:52:39

标签: python django properties built-in

我有一点问题,我已经尝试过谷歌搜索,但它并没有提供任何帮助。

我正在设计一个django应用程序,我想/需要一个名为" property"的字段。这样做的原因是 是我试图管理的东西的技术标题,并且在可能的情况下我想保留业务术语。

到目前为止,这还没有问题......

我现在需要一个方法,我希望能够用作属性,但是使用令牌property会有一些冲突。

class DataElementConcept(trebleObject):
    template = "polls/dataElementConcept.html"
    objectClass = models.ForeignKey(ObjectClass,blank=True,null=True)
    property = models.ForeignKey(Property,blank=True,null=True)

    @property
    def registryCascadeItems(self):
        return [self.objectClass,self.property]

我理解为这个错误。

  File "/home/theodore/Github/possum-mdr/polls/models.py", line 381, in DataElementConcept
    @property
TypeError: 'ForeignKey' object is not callable

有没有办法让我将此方法视为属性,并保留property属性?

1 个答案:

答案 0 :(得分:8)

也许这会有所帮助:

# On the module-level, do a workaround reference
# as property() is just a normal built-in function
_property = property 

class Foobar:
   property = ....


   @_property
   def registryCascadeItems(self):
       ....