2010-08-08 17 views
9

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

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).

Problemi correlati