Voglio aggiungere una colonna a una tabella di database ma non voglio modificare il modulo di terze parti nel caso in cui sia necessario/decidere di aggiornare il modulo in futuro. C'è un modo per aggiungere questo campo nel mio codice in modo che con le nuove build non devo aggiungere manualmente il campo?Django - come estendere i modelli di terze parti senza modificare
9
A
risposta
9
È possibile utilizzare ModelName.add_to_class (o .contribute_to_class), ma se si è già eseguito syncdb, non è possibile aggiungere automaticamente le colonne necessarie.
Per codice gestibile, è probabile che si desideri estendere la sottoclasse del modello desiderato nella propria app e utilizzare qualcosa come sud per gestire le migrazioni del database, oppure utilizzare OneToOneField e disporre di un modello correlato (ad esempio UserProfile è auth.User).
0
Date un'occhiata al modello di Django eredità e classi astratte http://docs.djangoproject.com/en/dev/topics/db/models/#multi-table-inheritance
Problemi correlati
- 1. Raccolta di messaggi da app di terze parti in Django
- 2. Come gestire i file di migrazione mancanti di django di app di terze parti?
- 3. Django's I18N con app di terze parti
- 4. Dove posso modificare il codice di visualizzazione amministratore per un'app di terze parti?
- 5. Django: cambia i modelli senza cancellare tutti i dati?
- 6. Come ottenere cookie di terze parti?
- 7. Come pacchettizzare 2 dll di terze parti
- 8. COM surrogato per componente di terze parti
- 9. Override di terze parti JS
- 10. Java resample .wav soundfile senza libreria di terze parti
- 11. Tracciamento del codice di terze parti con Git
- 12. Come scrivere una classe wrapper libreria di terze parti attorno a modelli di espressione
- 13. Gestione delle dipendenze interne di terze parti
- 14. Come caricare i modelli Django?
- 15. In che modo Go aggiorna i pacchetti di terze parti?
- 16. Ottenere Pypy per riconoscere i moduli di terze parti
- 17. Iniezione JavaScript su pagine di terze parti
- 18. JavaScript e cookie di terze parti
- 19. WCF - Autenticazione applicazione di terze parti
- 20. aggiungi una libreria di terze parti per estendere pigramente l'applicazione js (cioè solo quando è richiesta)
- 21. Librerie di terze parti in CMake
- 22. macdeployqt e librerie di terze parti
- 23. JS di terze parti in Angular2 typescript
- 24. resignFirstResponder() in tastiere di terze parti
- 25. Come vengono analizzati i modelli di Django?
- 26. Ruby, Qt e widget di terze parti
- 27. Ignora/estendi il modello di componenti di terze parti
- 28. Come allegare librerie di terze parti nella versione di rilascio
- 29. Applicazione dei metodi di terze parti virtualità
- 30. Libreria di terze parti con carosello Android