2016-10-03 49 views
0

我有以下模型,其中包含一個名爲boxnumber的字段 當我不使用DAL時,verbose_name和help_text出現並在需要時進行翻譯。使用django自動完成燈時,Verbose_name和helptext丟失

但是,當添加DAL(請參閱下面的modelform)時,它只顯示名稱,不翻譯並且沒有幫助文本。

有什麼建議嗎?

控制/ models.py:

from django.utils.translation import ugettext_lazy as _ 

class Command(models.Model): 
    .... 
    boxnumber = models.ForeignKey(SmartBox, models.SET_NULL, blank=True, null=True, 
            help_text=_("the Smart Box # on this client"), 
            verbose_name=_('Box-Number') 
           ) 

class CommandForm(ModelForm): 
    class Meta: 
     model = Command 
     fields = [..., 
        'boxnumber', 
        ... ] 


    boxnumber = forms.ModelChoiceField(
     queryset=SmartBox.objects.all(), 
     widget=autocomplete.ModelSelect2(url='control/boxnumber-autocomplete', 
             forward=['group']) 
    ) # adding this removes help_text and verbose_name 

信息: DAL 3.1.8 的Django 1.10.1 的Python 3.4

回答

0

這不是具體到DAL。您正在重新創建一個新的窗口小部件類,因此您需要自己複製help_text和verbose_name。

+0

所以,我在哪裏可以把這些在小部件代碼? – Yarh

0

更換了一個DAL插件的「默認」窗口小部件,那麼你必須添加「刷新」像這樣

class CommandForm(ModelForm): 
class Meta: 
    model = Command 
    fields = [..., 
       'boxnumber', 
       ... ] 


boxnumber = forms.ModelChoiceField(
    queryset=SmartBox.objects.all(), 
    widget=autocomplete.ModelSelect2(
       url='control/boxnumber-autocomplete', 
       forward=['group'] 
    ) 
    label=_('Box-Number') 
    help_text=_("the Smart Box # on this client") 
) # adding this removes help_text and verbose_name 
被提到

https://docs.djangoproject.com/en/1.11/ref/forms/fields/#label https://docs.djangoproject.com/en/1.11/ref/forms/fields/#help-text