Django - 使用Admin保存模型

时间:2014-12-19 18:56:06

标签: django django-admin

我创建了一个简单的模型 - 我将通过管理界面保存的实例。

字段 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'

1 个答案:

答案 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)