2017-01-10 7 views
0

私は現在、シングルトンオブジェクトを使用するDjangoアプリケーションを構築しています。 このオブジェクトをCBV変数として保存したいのは、「get」コールごとに初期化したくないからです。DjangoのCBVをインスタンスメソッドにする

私の簡単な質問CBVのget関数をインスタンスメソッドの代わりにクラスメソッドのにできますか? もしそうなら、変数をインスタンス変数として保存できますか?

EDIT - 私の質問へのより良い説明:

私は、電子measurment機器とのシリアル化された接続を処理するクラスを作成しました。 このクラスはインスタンス(シングルトン)が1つだけでなければなりません。別のインスタンスが作成された場合、メモリリークによってPythonがクラッシュします。

は、私は次のようにジャンゴでそれを使用する:特定のURLアドレスへ

Getリクエスト - > データ - > インスタンスのための計測器クラスのインスタンスを要求しますビューはデータで応答を - > ビューは、データを含むJsonResponseを返します。私はどのようにすべき

...それを行うための最善の方法は、CBVのgetメソッド(そのから取得したURLイムに関連する)インスタンスメソッドが、そのないような良い習慣を作っていると思います

それ?

+0

'get'はクラスメソッドではありませんか? – Sayse

+1

どういうわけか、あなたは世界でなぜそれをしたいのですか? – hspandher

+0

@hspandher特定のクラスオブジェクトを使用する必要があり、getメソッドがインスタンスメソッドでない場合は、取得するたびにオブジェクトを再初期化する必要があります(再初期化すると、保存されたデータが失われます) –

答えて

0

私が言ったように、getインスタンスメソッドです。

ここでは混乱する責任があります。クラスには1つの責任しか持たないでください。ビュークラスは、要求に応答して応答を返す責任があります。これは楽器との接続とはまったく別物です。これはモジュールレベルでインスタンス化され、ビュークラス内で使用される別のクラスでなければなりません。

関連する問題