는 django.forms.forms
에 따르면, Form
의 __getitem__()
방법은 무엇인가, 따라서 당신이 만든 변경 무엇이든 그것을 제거, 그것을 반환하기 전에 필드 밖으로 BoundField
라는 만듭니다. 당신이 정말에 더 많은 기능을 삽입 할 경우, 그것을 반환하기 전에 바운드 필드에 물건을 수행하는 메소드를 오버라이드 (override) :
class MyForm(forms.Form):
def __getitem__(self, name):
boundfield = super(forms.Form,self).__getitem__(name)
boundfield.foo = "bar"
return boundfield
그런 "bar"
은 그 형태의 모든 필드에 표시됩니다. 함수를 만들고 대신 호출하여 하드 코딩 된 문자열 이상으로 만들 수 있습니다.
더 많은 필드를 추가하거나 양식 자체에 속성을 추가하는 것이 더 일반적이지만 모든 필드에 포함해야하는 완전히 새로운 정보 클래스가있는 경우이 방법이 유용 할 수 있습니다. 템플릿에 foo
에 액세스하려면 다음
class MyForm(forms.Form):
def __init__(self, *args, **kwargs)
super(forms.Form, self).__init__(*args, **kwargs)
self.fields['field_name'].foo = "bar"
: 같은 일을 얻을 수있는 또 다른 방법
는 필드의 속성을 편집
BoundField
의
"field"
속성을 통해 액세스하는 것입니다 :
{{ form.field_name.field.foo }}
관련 : http://stackoverflow.com/questions/2270550/warnings-or-even-info-messages-instead-of-only-errors-in-django t에 대한 – guettli