la creazione di modello di Django per la vista del database / SQL esistente?
-
20-09-2019 - |
Domanda
ho inserito una definizione per una visualizzazione in $ file template_dir / sql / $ someTableName.sql. (Creare o sostituire vista) così ogni volta che corro syncdb
, vengono creati i punti di vista db.
Posso creare in models.py una classe python che accede questo punto di vista?
E 'pratica migliore di utilizzare solo la funzionalità SQL prime di pitone, invece?
--- EDIT ---
Un altro problema che ho è che la vista non ha una chiave primaria, ma Django sembra essere supponendo che non ci sarà un perché ottengo un caught an exception while rendering: (1054, "Unknown column 'appName_currentleagues.id' in 'field list'")
errore, ma non ho una tale membro definito:
Class CurrentLeagues(models.Model):
League = models.ForeignKey(League)
class Meta:
managed = False
Quindi la mia ipotesi è che Django vede ragionevolmente che non mi definisco una chiave primaria nella classe CurrentLeagues, quindi Django assume ce n'è uno chiamato id
. C'è un modo per dire Django che non c'è una chiave primaria (dal momento che questo è in realtà una vista), o è che neppure il mio problema?
Soluzione
Si definisce il modello come al solito e aggiungere managed = False
alle opzioni meta:
class MyModel(models.Model):
...
class Meta:
managed = False
Altri suggerimenti
Prova ad utilizzare inspectdb python manage.py o pitone manage.py inspectdb> models.py