Voglio creare un modello che non la mappa a una tabella di database. Invece, rimane in memoria come oggetto python.come creare un modelli di Django che non mappano ad una tabella di database
In realtà, questo modello si suppone che rappresenta i dati normalizzati di molti altri modelli di tabella mappata.
L'altra dati modelli negozio che può essere modificato più volte in un solo giorno. A causa di queste modifiche multiple, non voglio che un modello mappato alla tabella esegua normalizzazioni/calcoli e li memorizzi in un database poiché, questi dati memorizzati possono non essere aggiornati immediatamente.
Ogni volta che si accede a questo modello normalizzato (tramite admin), voglio che esegua la normalizzazione dei dati dagli altri modelli da zero (in modo che possa mostrare i dati più aggiornati) e si comporti come un normale il modello sarebbe sotto admin come Mostra la vista elenco e una vista dettagliata per ogni riga.
Modifica dopo la risposta di shintoista:
Grazie @Shintoist per la compensazione le cose e che forniscono un approccio utilizzabile. Ho appena implementato, ma colpire un muretto alla fine :)
@skirmantas: Sì, i calcoli sono in un oggetto separato. Questo oggetto viene passato nelle visualizzazioni personalizzate.
Problema: Un problema è che sotto admin.py, ho creato un modeladminclass per questo oggetto (che non eredita models.Model) così le mie visualizzazioni personalizzate può overide la vista elenco modifiche e ChangeView. Quindi uso admin.site.register() per registrare questa classe simile al modello e il modeladmin. Ma poiché questo modello non è affatto un modello di django (dato che è un oggetto python indipendente in memoria) admin.site.register() lancia un errore di tipo "tipo" non è iterabile ". Non voglio usare url.py invece di admin.py perché è pensato per il frontend mentre sto cercando di sovrascrivere l'amministratore di backend.
Capisco che tu voglia utilizzare l'amministratore, ma per le tue esigenze è un modo molto rotondo per farlo. Non potresti semplicemente ignorare il modello di amministrazione con un link da qualche parte nella pagina all'URL che utilizza la vista che hai scritto? In questo modo sarebbe "in" l'amministratore. Django cercherà automaticamente i modelli che sovrascrivono quelli integrati. Altrimenti ti suggerisco di andare con la soluzione di Tomasz Zielinski. –
@tomas. Se creo il modello di normalizzazione per mappare una tabella in memoria, non sarebbe ancora statico. Voglio dire, il modello quando viene aperto, recupera gli ultimi dati da altri modelli, normalizza/elabora i dati e mostra un elenco. Ora nel frattempo, se qualcuno modifica gli altri modelli, questi non si visualizzano nel modello di normalizzazione fino a quando il server non viene riavviato (che ricaricherebbe la tabella di memoria). – sysasa
Vorrei anche aggiungere che la mia implementazione di django utilizza già tre database, uno che contiene dati legacy (così posso migrarlo al nuovo sistema), uno SQLlite per eseguire test tramite fixture e il terzo, il database principale. Ciò significherebbe anche che aggiungerò un quarto database solo per un modello. – sysasa