Создание модели Django для существующей базы данных / представление SQL?

Я вставил определение для представления в файл $template_dir/sql/$someTableName.sql. (создать или заменить представление), поэтому каждый раз, когда я бегу syncdb, представления БД созданы.

Могу ли я создать в models.py класс python, который обращается к этому представлению?

Лучше всего использовать вместо этого простую SQL-функциональность Python?

---РЕДАКТИРОВАТЬ---

Другая проблема, с которой я столкнулся, заключается в том, что у представления нет первичного ключа, но django, похоже, предполагает, что он будет, потому что я получаю ошибку caught an exception while rendering: (1054, "Unknown column 'appName_currentleagues.id' in 'field list'") Но я не определил такой член:

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

Так что я предполагаю, что django разумно видит, что я не определяю первичный ключ в классе CurrentLeagues, поэтому Django предполагает, что есть один с именем id, Есть ли способ сказать Django, что нет первичного ключа (поскольку это на самом деле представление), или это даже не моя проблема?

2 ответа

Решение

Посмотреть неуправляемые модели

Вы определяете модель как обычно и добавляете managed = False к мета-опциям:

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

Попробуйте использовать python manage.py inspectdb или python manage.py inspectdb > models.py

Другие вопросы по тегам