5

私はdjango devのドキュメントを読んでいました。ここでは、パーマリンク デコレータは推奨されなくなりました。get_absolute_urlメソッド内でリバースを使用して、モデル インスタンスの完全な URL を生成します (少し上にスクロールして、警告ボックスをチェックしてください)。

必要なたびにリバースを使用しなければならないのは、DRY に違反していると思います。では、パーマリンクを使用することの何が問題になっているのでしょうか? 推奨されなくなったのはなぜですか?

4

1 に答える 1

11

現在のバージョンの django では、デコレータは文字通りreverseドキュメントが推奨する関数を呼び出します。その理由は、デコレータが不要になったためと思われますreverse()。名前、タプル、および辞書を返すよりも、使用するreverse方が見栄えがします。代わりに、慣用的な python である args と kwargs を使用します。

これは、API の純度を高めるためにデコレータを非推奨にすることについて議論したチケットです。警告を発してユーザーにコード ベースを更新させる代わりに、単純にドキュメントに警告を表示することにしました。

パーマリンク デコレータは廃​​止され、最終的には削除されるべきです。これは、URL を get_absolute_url にハードコードしなければならないという問題を解決するために導入されました。ただし、装飾されたという事実に対処するために関数シグネチャを強制的に変更するという点で、優れたデコレータの主要なルールの 1 つに違反しています。さらに、get_absolute_url の本体内で直接 reverse() を使用するよりも便利な機能は提供されません。

于 2013-04-20T04:35:32.783 に答える