2009-07-30 35 views
7

Tengo un modelo de "persona" que tiene una relación uno a muchos con otros modelos, por ejemplo, la dirección. Quiero editar estos modelos en la misma página que Person, lo cual ya puedo hacer a través de inlines. Pero también quiero cambiar el orden de los campos.Django Admin -> Cambiar el orden de los campos, incluidos los campos en línea

Quiero que el (en línea) campo "Dirección" para ser el tercer elemento de la lista, pero para

campos ('nombre', 'apellido', 'Adress_Inline', 'nacionalidad' etc ..) Lo entiendo: PersonAdmin.fields 'se refiere al campo' Address_Inline 'que falta en el formulario.

¿Hay alguna manera de cambiar el orden de los campos y obtener ciertos campos en línea entre los campos del modelo 'normal'?

¡Gracias!

Respuesta

0

Tendría que extender manualmente la plantilla de administrador (change_form.html) y las posiciones de código duro en ella. AFAIK, no puede insertar conjuntos de formularios en línea en el medio de un formulario principal.

0

Puede hacerlo con javascript. Debe sobrescribir la plantilla y quizás agregar alguna etiqueta div. A continuación, codifica tu div que quieras copiar y luego oculta el div original (con la línea). Espero que eso ayude.

0

Siempre que Django represente la plantilla de formulario de administrador, la lista de campos en línea está disponible en una variable {{inline_admin_formset}}, puede usar esto para mostrar campos en línea en cualquier lugar de su propia plantilla personalizada change_form.html.

Debe extender la plantilla change_form.html para poder hacer eso, no hay otra manera.

Cuestiones relacionadas