Estoy creando campos en un bucle for y almacenándolos en una lista en forma de Django. Al intentar colocar los campos en el archivo HTML, parece estar imprimiendo el objeto.
Algo como esto: <objeto django.forms.fields.IntegerField en ...>
Mi HTML se ve así:
{% for i in form.list %} {{i}} {% endfor %}
Así creo la lista:
l1 = [] #List that contains names l2 = [] #List that contains other names result = {} for i in l1: for j in l2: v_name = i + '_' + j result[v_name] = forms.IntegerField()
¿Cómo puedo convertir esa cadena en una entrada real?
Puede agregar campos al diccionario self.fields
en Form.__init__
para agregar dinámicamente campos a un formulario.
class MyForm(forms.Form): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) for i in l1: for j in l2: v_name = i + '_' + j self.fields[v_name] = forms.IntegerField()
Esto se puede usar como un formulario regular, o se puede iterar sobre
{{ form }} {% for field in form %} {{ field }} {% endfor %}