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?

È stato utile?

Soluzione

modelli non gestiti

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top