我尝试使用 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 属性?