質問: 出来るだけ、簡潔にまとめたつもりではありますがDjango初心者のため支離滅裂な点あると思います。 何卒ご容赦願います。 --- 現在Djangoを使用してwebアプリを作成しようとしています。 Djangoの仕様については基本を抑える程度には把握出来たと思っていますが、models.pyの扱い方がどうも分かりません。 チュートリアルでよくある様にDjangoに予め用意されているsqliteを使用してテーブルを直接取得や更新するのであればmodels.pyの扱い方も分かるのですが、postgresqlやSQLServer等の外部DBに接続して取得や更新は全てストアドを通して行うという仕様の場合、models.pyはどの様に扱うべきなのでしょうか? DBに接続する処理の記述は分かりやすい様にmodels.pyに記述するけれど、models.pyからforms.pyを作成するという様なことは出来ないということかと現在は考えています(今回は作成出来る必要はありません。作成出来れば便利な時もあるのかもしれませんが・・・)。 どなたかDjangoを使用してwebアプリを作成した経験のある方、この様なケースの場合のmodels.pyの扱い方について教えて頂けないでしょうか
回答: ストアドでなんらか処理を行うということでしたら、 ``` from django.db import connection cursor = connection.cursor() cursor.callproc("ProcedureName", [params]) ``` みたいにやってもいいですが、 Modelを使わないと、フォームの生成とか いろいろ面倒なことを自分で全部作らないといけなくなるので、 Djangoの魅力半減(激減)です。 なので少々改造してでも、Model使いたいですね。 カスタムマネージャでModel.objectsを変更したり Custom Managerの使い方 Model.save()をオーバーライドして処理をフックする方法もあります。