2014-12-19 247 views
0

我創建了一個簡單的模型 - 我將通過管理界面保存的實例。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

一種選擇是重寫你的保存方法運用它保存在此之前。

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) 
+0

工程很漂亮。謝謝 ! –

+0

對不起,但我有另一個問題作爲後續行動 - 我如何使這個領域隱藏在管理界面?謝謝 ! –

+1

http://stackoverflow.com/a/6498907/1637351 – schillingt