Ho un modelloEredità di Django: come avere un metodo per tutte le sottoclassi?
BaseModel
e diverse sottoclassi di esso
ChildModelA(BaseModel), ChildModelB(BaseModel), ...
utilizzando multi-tavolo eredità. In futuro prevedo di avere dozzine di modelli di sottoclassi.
Tutte le sottoclassi hanno qualche implementazione del metodo
do_something()
Come posso chiamare do_somthing da un'istanza BaseModel?
problemaQuasi identico (senza soluzione) è pubblicato qui:
http://peterbraden.co.uk/article/django-inheritance
Una domanda semplice: come risolvo BaseModel instnace ad uno dei suoi un'istanza sottoclassi senza controllare tutte le possibili sottoclassi?
Questo è tutto corretto, ma non rilevante in questo caso. Il problema è proprio il fatto che quando si lavora con l'ereditarietà multi-tavolo di Django, si ha spesso un'istanza della classe base disponibile (cioè da interrogare la tabella di base), anche se l'oggetto è "veramente" di un tipo figlio (cioè ha un corrispondente entrata in una tabella figlio). –