2017-02-18 87 views
0

Django模板中有可能直接在模板中引用該字段的屬性。例如.help_text或.label。像這樣:參考模板中的ModelField屬性

{% for field in form %} 
    {{field.label|safe}} 
    {{field}} 
{% endfor %} 

什麼是引用自定義字段屬性的正確方法? 例如:

{{field.myproperty}} 

我使用的ModelForm和models.py我用我自己的ModelField。一切正常,但任何嘗試添加我自己的屬性失敗。在某種意義上說,一切都很好,但如果我指的這個屬性在模板中它只是沒有得到它:-(

Models.py:

 class MyFormField(forms.IntegerField): 
      MyProperty = 'whatever' 
      def __init__(self,active1='default',*args, **kwargs): 
       self.MyProperty = 'whatever' 
       super(MyFormField, self).__init__(*args, **kwargs) 


     class MyOwnField(models.IntegerField): 
      def __init__(self, active1='asdf',*args, **kwargs): 
       super(MyOwnField, self).__init__(*args, **kwargs) 


      def formfield(self, **kwargs): 
       defaults = {'form_class': MyFormField} 
       defaults.update(kwargs) 
       return super().formfield(**defaults) 

     class MyModel(Model): 
       ns6_1 = MyOwnField() 

回答

0

首先,情況顯著; field.myproperty是不一樣的field.MyProperty

其次,當你通過表單迭代你不能直接獲取表單域,你得到的BoundField實例每一個都有一個field屬性,它是該領域本身如此。:

​​3210
+0

非常感謝!它完美地工作。 –