Frage

Ich habe eine Definition für eine Ansicht in $ template_dir/sql/$ irgendwannsame.sql -Datei eingefügt. (Ansicht erstellen oder ersetzen) also jedes Mal, wenn ich laufe syncdb, Die DB -Ansichten werden erstellt.

Kann ich in Models erstellen. Py eine Python -Klasse, die auf diese Ansicht zugreift?

Ist es besser Praxis, stattdessen nur Pythons rohe SQL -Funktionalität zu verwenden?

---BEARBEITEN---

Ein weiteres Problem, das ich habe, ist, dass die Ansicht keinen Primärschlüssel hat, aber Django scheint davon auszugehen, dass es einen geben wird, weil ich einen Fehler bekomme caught an exception while rendering: (1054, "Unknown column 'appName_currentleagues.id' in 'field list'") Aber ich habe kein solches Mitglied definiert:

Class CurrentLeagues(models.Model):
        League = models.ForeignKey(League)
        class Meta:
                managed = False

Ich vermute also, dass Django vernünftigerweise sieht, dass ich keinen Primärschlüssel in der Currentleagues -Klasse definiere, also geht Django davon aus id. Gibt es eine Möglichkeit, Django zu sagen, dass es keinen Primärschlüssel gibt (da dies tatsächlich eine Ansicht ist), oder ist das nicht einmal mein Problem?

War es hilfreich?

Lösung

Sehen Nicht verwaltete Modelle

Sie definieren das Modell wie gewohnt und fügen hinzu managed = False zu den Meta -Optionen:

class MyModel(models.Model):
    ...
    class Meta:
         managed = False

Andere Tipps

Versuchen Sie, Python verwalten zu verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top