Question

Je l'ai inséré une définition pour une vue en template_dir $ / sql / $ fichier someTableName.sql. (Créer ou remplacer vue) de sorte que chaque fois que je lance syncdb, les vues db sont créées.

Puis-je créer dans models.py une classe python qui accède à ce point de vue?

Est-il préférable d'utiliser des fonctionnalités simplement sql premières de python à la place?

--- EDIT ---

Un autre problème est que je la vue ne dispose pas d'une clé primaire, mais django semble être en supposant qu'il sera un parce que je reçois un caught an exception while rendering: (1054, "Unknown column 'appName_currentleagues.id' in 'field list'") d'erreur, mais je ne dispose pas d'un tel élément défini:

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

Alors je suppose que django voit raisonnablement que je ne définit pas une clé primaire dans la classe CurrentLeagues, alors Django suppose qu'il ya un appelé id. Est-il possible de dire à Django qu'il n'y a pas de clé primaire (puisque c'est en fait une vue), ou est-ce même pas mon problème?

Était-ce utile?

La solution

modèles non gérés

Vous définissez le modèle comme d'habitude et ajoutez managed = False aux options meta:

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

Autres conseils

Essayez d'utiliser inspectdb python manage.py ou python manage.py inspectdb> models.py

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top