既存のデータベース/SQLビュー用のDjangoモデルの作成?
-
20-09-2019 - |
質問
ビューの定義を$ template_dir/sql/$ shomeablename.sqlファイルに挿入しました。 (ビューを作成または交換する)ので、実行するたびに syncdb
, 、DBビューが作成されます。
そのビューにアクセスするPythonクラスをモデルで作成できますか?
代わりにPythonのRAW SQL機能を使用する方が良い練習ですか?
- -編集 - -
私が抱えているもう1つの問題は、ビューには主要なキーがないということですが、エラーが発生したため、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に主要な鍵はないことを伝える方法はありますか(これは実際にはビューであるため)、それは私の問題でさえありませんか?
解決
見る 管理されていないモデル
モデルをいつものように定義し、追加します managed = False
メタオプションへ:
class MyModel(models.Model):
...
class Meta:
managed = False
他のヒント
python manage.py InspectDBまたはpython manage.py inspectdb> models.pyを使用してみてください
所属していません StackOverflow