2010-05-20 79 views
1

我有這樣的樣品模型與管理修改上即時verbose_name在模型字段上Django管理

class Author(models.Model): 
    name = models.CharField(_('Text in here'), max_length=100) 

與verbose_name設置爲ugettext_lazy「在此處的文本」的工作,但有時,這取決於SITE_ID我想提出一個diferent冗長的名字,所以我修改了初始化這樣

def __init__(self, *args, **kwargs): 
    super(Author, self).__init__(*args, **kwargs) 
    #some logic in here 
    self._meta.get_field('name').verbose_name = _('Other text') 

它的工作原理,顯示「其他文本」,而不是「在此處的文本」 ......除了極第一次使用作者/添加視圖。

¿這是否正確嗎? ¿我如何解決第一次問題?

在此先感謝

回答

3

請勿修改模型的元素。正如你發現的那樣,模型定義中會出現各種各樣的元類事件,這些事件將會破壞事物。

取而代之,定義一個自定義表格並在那裏更改__init__方法中的字段標籤。

+0

完美。 當我創建自定義窗體verbose_name以正確的方式顯示。即使它可以在模型中進行修改,但是正如你所建議的那樣,將所有的個性化內容移動到表單中以避免破壞事物。 非常感謝 – PerroVerd 2010-05-21 08:03:23

相關問題