我创建了一个简单的模型 - 我将通过管理界面保存的实例。
字段 hashval 需要具有标题的哈希值。它似乎只有每个条目的默认哈希值。我该如何解决这个问题?此外,还应在标题更新时进行更新。任何帮助实现这一点将非常感激。 (请指出是否存在任何重复)
class Entry(models.Model):
created = models.DateTimeField(auto_now_add=True)
title = models.CharField(max_length=50)
content = models.TextField()
hashval = models.BigIntegerField()
hashval = abs(hash(title))
def __unicode__(self):
return smart_unicode(self.title + " " + str(self.hashval))
class Meta:
verbose_name_plural = 'Entries'
答案 0 :(得分:1)
一个选项是覆盖您的保存方法,以便在保存之前应用此方法。
class Entry(models.Model):
created = models.DateTimeField(auto_now_add=True)
title = models.CharField(max_length=50)
content = models.TextField()
# Need to specify it as blank=True here or
# in the form so it can be ignored when the form is cleaned
hashval = models.BigIntegerField(blank=True)
def save(self, *args, **kwargs):
self.hashval = abs(hash(self.title))
return super(Entry, self).save(*args, **kwargs)