【发布时间】:2012-06-16 08:48:32
【问题描述】:
我尝试使用 python 属性设置 Django 模型,如下所示:
class Post(models.Model):
_summary = models.TextField(blank=True)
body = models.TextField()
@property
def summary(self):
if self._summary:
return self._summary
else:
return self.body
@summary.setter
def summary(self, value):
self._summary = value
@summary.deleter
def summary(self):
self._summary = ''
到目前为止一切顺利,在控制台中我可以很好地与摘要属性交互。但是当我尝试用这个来做任何 Django-y 的事情时,比如Post(title="foo", summary="bar"),它会很适合。有什么方法可以让 Django 很好地使用 Python 属性?
【问题讨论】:
-
这是 Python 中的标准方法 (docs.python.org/library/functions.html#property) -- 我只是使用装饰器样式而不是显式调用
property。 -
你的意思是
Post(body="foo", summary="bar")?(注意body而不是title)。这应该有效。 -
@okm 我修正了那个错字。它曾经说
Post(title="foo", summary="bar"),这是一个明显的错字。
标签: python django django-models