2013-03-24 46 views
0

我試圖通過實施一個在線論壇來學習Python和Django。現在,我試圖將帖子標題的默認值設置爲「Re:」+ thread.title,但我似乎無法做到這一點。將計算出的默認值添加到Django模型中,怎麼樣?

我已經搜索過這樣的東西,但沒有任何東西似乎回答我的問題。

這裏是我的代碼(models.py):

from django.db import models 

class Thread(models.Model): 
    title = models.CharField(max_length=50) 

    def __unicode__(self): 
     return u'[id=%s]%s' % (self.id, self.title) 

class Post(models.Model): 
    thread = models.ForeignKey(Thread) 
    title = models.CharField(max_length=50) 
    post_date = models.DateTimeField(auto_now_add=True) 
    content = models.TextField() 

    def __init__(self): 
     super(Post, self).__init__() 
     if not self.title: 
      self.title = "Re: %s" % self.thread.title 

    def __unicode__(self): 
     return u'%s::[id=%s]%s' % (self.thread, self.id, self.title) 

我希望有人能幫助我。

問候, 乍得

回答

1

你可能想在覆蓋save方法來設置默認值。您的__init__代碼不起作用,因爲此時self.thread尚未設置。

+0

謝謝wRAR。我很好奇,當通過管理頁面添加東西時,這會很明顯嗎? – Chad 2013-03-24 13:56:18

+0

@Chad不,但你沒有其他選擇,因爲在admin中創建對象時'self.thread'最初是空的。 – wRAR 2013-03-24 13:59:59

+0

非常感謝您的幫助。 – Chad 2013-03-24 14:12:40