1

Quoteユーザーモデルへの外部キーを持つmodelがあります。ユーザーは 0 ~ 10 個の引用符を持つことができます。1 つ以上の引用符がある場合は、そのうちの 1 つをプライマリ クォートにする必要があります (プライマリは Quote モデルのフィールドです)。

ユーザーが見積もりを追加すると、ユーザーが他の見積もりを持っているかどうかがチェックされます。そうでない場合は、新しい見積もりがプライマリとして設定されます。また、一次引用符が削除されると、ユーザーが他の引用符を持っている場合は、別の引用符が一次引用符として設定されます。

現在、私はそれぞれのビューでこれを行っています。モデルのsaveand関数をオーバーライドして、そこですべてを行う方がよいかどうか疑問に思っていました。delete

これらのタスクを実行するには、モデルとビューのどちらが適切でしょうか?

4

1 に答える 1

6

一般的なコンセンサスは、厚いモデルとヘルパー、薄いビューです。つまり、ビューはできるだけシンプルにする必要があります。モデルを可能な限りリッチにし、外れ値のヘルパー コードを豊富に用意します。

また、モデル メソッドをオーバーライドすると、ORM へのアクセス方法に関係なく、ルールが適用されるという一種の「保証」が提供されることにも注意してください。ビューでのみロジックを実行する場合は、他の場所で行います。たとえば、カスタム管理コマンドや django シェル、テンプレート タグ、または別のビューを使用すると、ルールが適用されない可能性があります。

于 2013-05-07T06:45:42.113 に答える