2009-08-10 13 views
5

Estaba a punto de hacer esencialmente la misma pregunta que this one. Sin embargo, dado que nadie respondió, asumiré que los formularios en línea anidados no son posibles.¿Es posible anidar formas en línea en los modelos de Django Admin?

Así que en vez voy a preguntar cómo se acercaría a diseñar algo como esto en Django:

Un minorista vende ropa. Cada diseño de suéter tiene un número de Estilo. Este estilo está disponible en diferentes telas y colores diferentes, por lo que necesita una tabla de estilo y Product Table para manejar cada variación de suéter. (Por ejemplo, podría haber un azul de algodón suéter, azul nylon suéter, verde de algodón suéter, etc ...) Esta contendría una clave externa en una tabla Telay una mesa de color .

¡Pero necesitamos fotos! Cada variación del producto puede tener una o más imágenes. Así que agregamos una tabla de imágenes con con una clave externa a la tabla de productos.

Sin líneas anidadas, la única forma en que se me ocurre presentar esto en el CMS es hacer que el cliente agregue primero un estilo, junto con los productos subordinados en línea. Luego, cuando termine, abra la tabla de productos y permita la carga de imágenes en línea. (Tal vez eliminando el permiso de agregar productos directamente para que solo editen los productos existentes.)

Pero esto es algo tonto, ¿no crees?

Ideas bienvenidas.

Respuesta

2

Lo haría así.

Un modelo contiene la información del producto de nivel superior. Luego, tenga una tabla relacionada para la información de estilo/color, llámela ProductDetail: tendrá claves externas para Producto, Estilo, Color y Tela, más una imagen y probablemente un campo de SKU.

Luego, su formulario de importación puede usar el FK de ProductDetail a Product para mostrar los detalles en línea con el producto principal. Cada fila, entonces, tiene un menú desplegable para el estilo, el color y el tejido, y cada uno de estos campos usaría el widget FK de Django para seleccionar entre las opciones existentes o invocar una ventana emergente para agregar una nueva. Luego, el campo de imagen está justo al lado de las opciones para cada fila, por lo que es específico para esa combinación individual.

¿Eso funciona?

+0

Gracias Daniel. Así es como lo hice en realidad :) Lamentablemente, tuve que abandonar el requisito de poder mantener múltiples imágenes por cada fila de ProductDetail. Además, tengo 3 imágenes por fila: miniatura, normal y alta resolución. Lo que causa un desplazamiento horizontal importante. – joedevon

Cuestiones relacionadas