2009-12-10 22 views
9

Abbiamo lottato con questo per alcuni giorni e abbiamo fatto molte ricerche sul web.Django Many To Many Ordinazione degli inserti

Stiamo cercando di capire come le voci vengono salvate nei moduli di Django per molti a molti campi.

Ad esempio, abbiamo un modello di notizie che ha una relazione molti-molti con le immagini. Quando aggiungiamo immagini a un articolo di notizie, ad es. le immagini con id 10,2,14 possiamo vedere i valori postali sono i seguenti quando si salva un modulo di notizie articolo:

  • foto 10
  • foto 2
  • foto 14

Quando abbiamo guarda nella tabella di intersezione molti a molti l'ordine non è stato conservato. Non possiamo vedere alcuna logica nell'ordine in cui sono inserite le foto.

Speriamo che abbia senso!

Molte grazie per le vostre risposte in anticipo.

Arif

risposta

12

Django non garantisce di preservare l'ordine di molti-a-molti. Se è necessario, è necessario utilizzare una tabella through con un campo "ordine" esplicito.

+0

Daniel, Questo è un grande aiuto, molte grazie per la vostra risposta. Dopo aver esaminato i documenti che hai collegato sembra risolvere il problema. Grazie. Arif – Arif

+0

Anche l'idea dell'ordine mi aiuterà, grazie. Ma come definiresti la query facendo questo? guarda il mio modello in questo post http://stackoverflow.com/questions/18442797/how-to-model-a-reflexive-many-to-many-relationship – Armance

+1

Ho usato un created = models.DateTimeField (auto_now_add = True) sul mio intermediario/tramite modello per conoscere l'ordine di inserimento. Quindi posso usare .order_by ('created') –