2011-08-05 33 views
1

考慮以下(簡化)的Django模型:Django的預先填充+附加固定字符串

Noun(models.Model): 
    noun = models.CharField(max_length=30) 
    plural = models.CharField(max_length=30) 

我希望能夠進入,也就是說,在名詞場「貓」,並有多個場自動填充與'貓'。也就是說,我想定義一個字符串來追加到預填充字段的末尾。這可能嗎?

我知道我可以用'cat'預先填充admin.py中的相應設置,但這還不夠。當然,重要的是我可以在預填充之後編輯條目(如果文字不規則)。任何想法將不勝感激。

+0

'plural = str(noun)+'s''?對不起,如果我關閉,Django不是我的優勢 – Andy

回答

2

讓複數空白= True和做這樣的事情在你的保存():

def save(self, *args, **kwargs): 
    if not self.plural: 
     self.plural = self.noun + 's' 
    super(Noun, self).save(*args, **kwargs) 

我會真正做到這一點在JavaScript客戶端,將數據錄入的人可以糾正,如果它是不正確。

+0

這是偉大的,謝謝!只有一件事:我必須用'str(self.noun)'替換'self.noun'來防止類型錯誤。也許是因爲我的名詞實際上是指向單詞列表的外鍵? – obco

+0

哎。 str(self.noun)將被對象self.noun上調用的__unicode__或__str__方法的結果替換。聽起來像這可能是一個更復雜的問題,這個簡單的答案將涵蓋。 –