Bucle de formularios Django Crispy a través del objeto {% crispy %}.
Estoy intentando utilizar campos de formulario precisos dentro de cada columna de una tabla. Puedo renderizarlo usando:
{% load crispy_forms_tags %}
<tr>
<form method="get" class="form-inline justify-content-center">
{% for field in filter.form %}
<th>{{ field|as_crispy_field }}</th>
{% endfor %}
<input class='hidden-submit' type="submit">
</form>
</tr>
Y se ve como quiero:
Pero el problema es mi Layout()
que estoy usando para agregar parámetros adicionales, tales como marcadores de posición, no está funcionando porque estoy usando la etiqueta |as_crispy_field
para renderizar campos individuales. Aquí está mi componente de formulario:
class CustomFiltersForm(forms.Form):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_show_labels = False
self.helper.form_tag = False
self.helper.layout = Layout(
)
for field_name, field in self.fields.items():
self.helper.layout.append(Field(field_name, placeholder="Buscar " + field.label))
¿Hay alguna forma de recorrer {% crispy filter.form%}
o una forma alternativa de poblar campos individuales utilizando formularios sustanciosos? Algo como:
{% for field in {% crispy filter.form%} %}
...
{% endfor %}
davy.ai
Sí, puedes hacer un bucle a través de
{% crispy filter.form %}
para llenar campos individuales usando formularios crujientes. Por ejemplo:También puedes usar el
Layout()
para agregar parámetros extras como marcadores de posición al formulario. Por ejemplo:Esto te permitirá representar campos individuales usando la etiqueta
|as_crispy_field
mientras agregas parámetros extra como marcadores de posición al formulario.