2009-08-10 11 views
5

Stavo per fare essenzialmente la stessa domanda di this one. Tuttavia, dal momento che nessuno ha risposto, suppongo che i moduli inline annidati non siano possibili.I moduli in linea nidificati sono possibili nei modelli di Django Admin?

Così, invece mi limiterò a chiedere come ci si avvicina a progettare qualcosa di simile in Django:

Un rivenditore vende capi di abbigliamento. Ogni modello di maglia ha un numero di stile. Questo stile è disponibile in diversi tessuti e colori diversi, quindi è necessario un tavolo stile e un tavolo per gestire ogni variazione di maglione. (Ad esempio, ci potrebbe essere un blu di cotone maglione, blu nylon maglione, verde di cotone maglione, ecc ...) Questa dovrebbe contenere una chiave esterna in un tessuto Tabellae un tavolo colore.

Ma abbiamo bisogno di immagini! Ogni variazione di prodotto può avere una o più immagini. Quindi aggiungiamo una tabella immagini con una chiave esterna alla tabella del prodotto.

Senza inline annidate, l'unico modo in cui posso pensare di presentarlo nel CMS è avere il client per aggiungere uno stile prima, insieme ai prodotti subordinati in linea. Al termine, apri la tabella dei prodotti e consenti il ​​caricamento delle immagini in linea. (Forse rimuovendo il permesso di aggiungere prodotti direttamente in modo che possano modificare solo i prodotti esistenti.)

Ma questo è un po 'janky, non credi?

Idee benvenute.

risposta

2

Lo farei così.

Un modello contiene le informazioni sul prodotto di livello superiore. Quindi disporre di una tabella correlata per le informazioni su stile/colore, denominarla ProductDetail: avrebbe chiavi esterne per Prodotto, Stile, Colore e Tessuto, oltre a un'immagine e probabilmente un campo SKU.

Quindi il modulo di importazione può utilizzare l'FK da ProductDetail al prodotto per mostrare i dettagli in linea con il prodotto principale. Ogni riga, quindi, ha un menu a discesa per stile, colore e tessuto, e ognuno di questi campi userebbe il widget FK di Django per selezionare tra le opzioni esistenti o richiamare un popup per aggiungerne uno nuovo. Quindi il campo immagine è proprio accanto alle opzioni per ogni riga, quindi è specifico per quella singola combinazione.

Funziona?

+0

Grazie Daniel. È così che l'ho fatto in realtà :) Purtroppo, però, ho dovuto rinunciare al requisito di poter contenere più immagini per riga ProductDetail. Inoltre ho 3 immagini per riga: miniatura, normale e ad alta risoluzione. Quale causa una grande scroll orizzontale. – joedevon

Problemi correlati