Nach django.forms.forms
, die __getitem__()
Methode eines Form
schafft etwas ein BoundField
aus dem Feld aufgerufen, bevor es zurückkehrt, so dass es von Strippen, was auch immer Änderungen. Wenn Sie wirklich mehr Funktionalität in die einfügen möchten, überschreiben diese Methode Zeug zum gebundenen Feld zu tun, bevor es zurückkehrt:
class MyForm(forms.Form):
def __getitem__(self, name):
boundfield = super(forms.Form,self).__getitem__(name)
boundfield.foo = "bar"
return boundfield
Dann "bar"
wird für alle Felder in dieser Form erscheinen. Sie können auch eine Funktion erstellen und diese stattdessen aufrufen, um mehr als nur eine fest codierte Zeichenfolge zu erhalten.
Während es mehr Standard ist, weitere Felder hinzuzufügen oder dem Formular selbst Eigenschaften hinzuzufügen, wenn Sie eine ganz neue Klasse von Informationen haben, die jedes Feld enthalten muss, kann dies das für Sie tun.
Ein anderer Weg, um die gleiche Sache zu bekommen, ist ein Attribut des Feldes zu bearbeiten, es dann über die BoundField
‚s "field"
Attribut zuzugreifen:
class MyForm(forms.Form):
def __init__(self, *args, **kwargs)
super(forms.Form, self).__init__(*args, **kwargs)
self.fields['field_name'].foo = "bar"
, dann foo
in einer Vorlage für den Zugriff auf:
{{ form.field_name.field.foo }}
Verwandte: http://stackoverflow.com/questions/2270550/warnings-or-even-info-messages-instead-of-only-errors-in-django – guettli