Nel mio sito django ho due app, blog e collegamenti. il blog ha un blog post modello e i link hanno un collegamento modello. Ci dovrebbe essere una relazione uno a molti tra queste due cose. Ci sono molti link per blogpost, ma ogni link ha un solo ed unico post sul blog. La semplice risposta è mettere un ForeignKey per blogpost nel modello di link.Come modellare una chiave esterna in un'app Django riutilizzabile?
Questo va tutto bene, tuttavia, c'è un problema. Voglio rendere l'app dei collegamenti riutilizzabile. Non voglio che dipenda dall'app del blog. Voglio poterlo riutilizzare in altri siti e magari associare link con altre app e modelli non di postazione blog.
Una chiave straniera generica sembra che potrebbe essere la risposta, ma non proprio. Non voglio che i collegamenti siano in grado di associarsi a nessun modello nel mio sito. Solo quello che specifichi esplicitamente. E so per esperienza precedente che ci possono essere problemi nell'utilizzo di chiavi esterne generiche in termini di utilizzo del database perché non è possibile eseguire un select_related su una chiave esterna generica come è possibile con una normale chiave esterna.
Qual è il modo "corretto" per modellare questa relazione?
Avevo dimenticato che Django ti permette di usare i nomi dei modelli di stringa per questo. +1 – SingleNegationElimination
Oh wow, ottima idea di usare le impostazioni. Grazie! – Apreche
Si noti che questo approccio richiede la creazione di nuove migrazioni a livello di app riutilizzabile. – Bula