기존 데이터베이스/SQL보기에 대한 Django 모델 작성?
-
20-09-2019 - |
문제
$ template_dir/sql/$ tomesablename.sql 파일의보기에 대한 정의를 삽입했습니다. (보기 만들거나 교체) 실행할 때마다 syncdb
, DB보기가 생성됩니다.
Models.py에서 해당보기에 액세스하는 Python 클래스에서 만들 수 있습니까?
대신 Python의 원시 SQL 기능 만 사용하는 것이 더 나은 연습입니까?
---편집하다---
내가 가진 또 다른 문제는보기에 기본 키가 없지만 장고는 오류가 발생하여 하나가 있다고 가정하는 것 같습니다. 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가 현재 리저 클래스에서 기본 키를 정의하지 않는다는 것을 합리적으로 본다는 것입니다. id
. Django에게 기본 키가 없다고 말할 수있는 방법이 있습니까?
해결책
보다 관리되지 않는 모델
모델을 평소처럼 정의하고 추가합니다 managed = False
메타 옵션으로 :
class MyModel(models.Model):
...
class Meta:
managed = False
다른 팁
python manage.py despectdb 또는 python manage.py despectdb> models.py를 사용해보십시오.
제휴하지 않습니다 StackOverflow