2016-05-27 17 views
0

django_commentsアプリ(github repodocs)をカスタマイズしようとしています。Django_comments:post_comment()をオーバーライドする適切な方法は何ですか?

デフォルトのget_form_target()は、ファンクションベースのビューであるdjango_comments.views.post_commentを返します。 post_comment()は、HttpRedirectResponsenext(指定されている場合)またはデフォルトの確認ページの値に戻します。

デフォルトのpost_comment()実装hereを参照してください。

post_comment()にロジックを追加する必要があります。余分なロジックを使って、デフォルトの実装をどこまで引き継ぐことができますか?元のコードをコピーして変更するだけで、数行のカスタムロジックを追加するだけでコードの複製がたくさんあるように感じることができます。

答えて

0

それはあなたのロジックが現在のpost_comment()で何が起こっているのかに対する相対起こる場所によって異なります。あなたは、単にpost_comment()前に何かをしたい場合は、単に、既存のFUNCへのポインタをコピーし、あなたのFUNCを作成し、最後にオリジナルを呼び出します。最後に、他のモジュールのpost_comment()に関数を割り当てることでMonkeyPatchできます。

OTOHは、あなたが現在FUNC内を何が起こっているか変更されて何をしたいのか場合は、上記のように、コードのコピー、モンキーパッチを作成する必要があります。うまく

注:でも良いコメントはこれが何をしているかについて人々に警告し、MonkeyPatchingはただ将来的には、いくつかの不便な時にオフに行くのを待って、メンテナンスtimebombを表します。

関連する問題