2011-05-16 16 views
7

tengo un simple formulario de Django:Django, identificadores únicos para los campos de formulario

class CommentForm(forms.Form): 
    comment = forms.CharField(max_length=2000, required=True) 
    post_id = forms.CharField(max_length=2000, widget=forms.HiddenInput, required=True) 
    parent_id = forms.CharField(max_length=2000, widget=forms.HiddenInput, required=True) 

Ahora quiero imprimir esta forma varias veces en mi página - lo estoy haciendo a través de una etiqueta de plantilla, por lo que la nueva forma se crea cada vez. El problema es que obtengo los mismos ID para todos los campos.

Conozco el prefijo, pero no quiero cambiar los nombres de los campos, porque hay un solo controlador para todos los formularios, solo para establecer ID únicos.

Así que mi pregunta:

  • ¿Hay una manera de hacer Django establece identificadores únicos si quiero a la salida de un formulario varias veces, sin cambiar los nombres de los campos?
  • De lo contrario, ¿hay alguna forma de que Django no genere ID de salida?
+2

¿Has mirado los conjuntos de formularios Django? Le permiten administrar varias instancias del mismo formulario en una página: http://docs.djangoproject.com/en/dev/topics/forms/formsets/ –

+0

@pastylegs, gracias por el enlace. No puedo usar los conjuntos de formularios, porque cada formulario tiene diferentes parámetros iniciales. –

+0

Debería poder rellenar los formularios en el formset con datos iniciales separados al recorrer los formularios. Eche un vistazo a algunos de los ejemplos. Los formularios no parecen estar tan bien documentados como el resto, pero son bastante poderosos –

Respuesta

Cuestiones relacionadas