Tengo un formulario de Django que se pasa a las plantillas a través de la vista. En el __init__ del formulario, intento agregar un parámetro a cada campo, al que se puede acceder desde el código, pero no desde la plantilla.
formularios.py
class GenForm(forms.ModelForm): def __init__(self, *args, **kwargs): self.request = kwargs.pop('request', None) super(GenForm, self).__init__(*args, **kwargs) for field in self.fields: self.fields[field].dest = 'test_value' help_text = self.fields[field].help_textmodelo
{% for field in form %} {{ field.help_text }} || {{ field.dest }} {% endfor %}vistas.py
ret_dic['form'] = GenForm(request = request) return render(request, 'template_file', ret_dic)Mi objetivo sería alcanzar el valor deseado para los campos de la plantilla, pero no se muestra en absoluto. Lo que es extraño/interesante es que puedo llegar al valor dest del código:
ipython
gen = GenForm() gen.fields['name'].dest #results: test_valueMis preguntas son:
El texto de ayuda al que puedo acceder desde el código y también desde la plantilla. ¿Debería registrarlo de alguna manera tal vez?
Pitón: 3.4 Django: 1.9
El campo al que accede en la plantilla es en realidad una instancia de BoundField. Puede acceder al campo subyacente real a través del atributo .field . Así que esto funcionaría:
{{ field.help_text }} || {{ field.field.dest }}