Domanda

Ho applicazioni utenti e progetti e vorrei definire un'altra applicazione chiamata ruoli per estendere django-auth per ogni singolo progetto.

Ho definito ProjectMembership in app ruoli come un modello di relazione ManyToMany personalizzato. Ma come faccio a definire il campo M2M in uso o il modello del progetto con dichiarazione through?

Quindi domanda è: possiamo definire il campo di modello da un altro app?

È stato utile?

Soluzione

Non credo sia possibile, e anche se è possibile, allora è a mio parere una pessima soluzione.

Credo che la soluzione migliore è quella di creare il modello ProjectMembership con due FK di, uno a Utente e uno a progetto. Allora avete un Manuale M2M relazione, e hai solo non è possibile utilizzare tutte belle Django caratteristiche per lavorare con le relazioni M2M.

Se invece desidera che questa funzionalità (non sono necessari), allora è necessario modificare l'utente o il modello del progetto.

Altri suggerimenti

Sì, è possibile, Django creerà automaticamente il rapporto inverso per voi. Utilizzare related_name per dargli un nome!

Modifica (denaro patch) il modello User non è una buona idea. Se si desidera estendere, farlo sia tramite:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top