2011-01-06 6 views
7

Algunos expertos front-end afirmar que envolver un <input> con las etiquetas <label> (implícitas) es una práctica preferible (en comparación con los explícitos, incluso si no tienen el atributo for).Django <input> dentro <label>

Sean cuales sean las razones, me gustaría ver cómo esto se puede hacer técnicamente con Django de una manera elegante.

+2

¿Qué expertos de front-end? ¿Dónde? ¿Puedes proporcionar un enlace? –

+1

Discusión fuera de línea con las personas con las que trabajo. – kmt

+0

@Joe D, la Fundación Zurb lo usa y aquí hay un enlace: http://zurb.com/article/195/make-web-forms-suck-less-with-labels – Nils

Respuesta

3

Escriba su propio Widgets y úselos en su Forms.

+1

Form._html_output es lo que controla la salida, no los widgets – kmt

+3

@kmt 'Widgets' tienen un método' render' que produce el marcado para el 'Widget'; también podría hacer que produzca la etiqueta 'label' (aunque deberá asegurarse de que' BoundField' para su 'Widget' no imprima de alguna manera una' etiqueta' propia). Para ser claro: no lo recomiendo. Por un lado, es un PITA (para mis ojos) sin beneficio. Además, es probable que rompa la mayoría de los diseños ya que las 'etiquetas 'están en una columna y las' entradas ', etc. están en otra. –

+1

No he visto otras versiones, pero en 1.2.3 Form._html_output adjuntaría tanto la etiqueta 'BoundField' como la salida del' Widget' a su salida. De eso no tengo control a menos que anule ese método (que es una * mala * idea). – kmt