Создание модели 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