2016-09-23 3 views
0

Pycharmは私のCBVメソッドを静的にすることを提案していました。しかし、これが行われない理由があるはずです。さもなければ、私よりも賢い人の多くがこれまでにこれをやろうと考えていたに違いありません。今私はなぜそれが行われていないかを理解しようとしています。なぜCBVに静的メソッドを使用しないのですか?

ドキュメントのチュートリアルをもう一度読んで、selfという唯一の場所は、静的なオブジェクトメソッドを参照することです。だから私はまだ静かにしてはならないという理由は見当たらない。

http://www.django-rest-framework.org/tutorial/3-class-based-views/

私は私のプロジェクトでそれらを静的作ってみました、そしてどんな問題なく動作するように見えました。だから、誰かが私に説明してくださいなぜこれらのメソッドは、一般的な練習として静的にされていませんか? FBVは静的なので、CBVでも静的メソッドを使うべきでしょうか?

答えて

0

ビューのインスタンスで作業する方が簡単であるため、静的ではありません。通常、静的メソッドを書くときは、簡単な使い方のためにクラス/インスタンスに関数をバウンディングするだけです。この関数は、インスタンス自体については認識していません。これは名前空間の目的のためだけにあります。

requestのようなデータではobjectなどが格納されています。そのため、すべてのメソッド呼び出しを連鎖することなく、どのインスタンスメソッドでもアクセスできます。フォーム、コンテキスト、テンプレートなどで作業するための多くの基礎となるメソッドがあることを忘れないでください。そして、あなたが望むことを行うために、それらが共有する "インスタンスコンテキスト"が必要になるかもしれません。

+0

私が正しく理解していれば、これは構文糖であり、必要に応じて非常に静的にできますか?これはDjango Rest Frameworkのビューにも適用されますか?私はまだ有効な使用例を探していますが、インスタンス変数を使用するように見える難読化されたサンプルを見つけることができました:https://docs.djangoproject.com/en/1.10/topics/class -based-views/intro /#handling-forms-with-class-based-views – dtgq

+0

@DavidTan構文砂糖とはどういう意味ですか? –

関連する問題