用方法设置Django模型字段

我正在尝试为代码0设置PLACEHOLDER,但它在我的数据库中显示为“<property object at 0x027427E0>”。我究竟做错了什么? PLACEHOLDER FOR_CODE_2

已邀请:

peum

赞同来自:

您不能在默认情况下使用property()

.., default=property(_get_title_for_url))
默认值应为常量。如果需要计算缺失值,请使用pre_save挂钩。

godio

赞同来自:

title_for_url = models.CharField(max_length=100, editable=False, default=property(_get_title_for_url)
你不能这样做..'默认'应该是一个值或一个calable(没有args)...(属性不是calable) 在您的情况下,您需要更新保存方法:
class Entry(models.Model):
    def save(self, *args, **kwargs):
       self.title_for_url = self.get_title_in_url_format()
       super(Entry, self).save(*args, **kwargs)

jsed

赞同来自:

这是对我有用的最终版本:

def save(self, *args, **kwargs):
    self.title = self.title.strip()
    self.title_for_url = self.get_title_in_url_format()
    super(Entry, self).save(*args, **kwargs)

要回复问题请先登录注册