<< うはwww雑草wwww : main : 黒いダイヤ >>

[MEMO] djangoのreverseとdecorator

Djangoのreverseではまる.ログインを強制するために @login_requiredを使っている場合はURLを名前付きで定義しないと urlresolvers.reverse が使えない.
django/core/urlresolvers.py を見ればわかるが,
urlresolverで使う辞書がRegexURLResolverオブジェクトのreverse_dictに入っている.以下の手順で内容を確認してみる.

manage.py shell
import urls
from django.core import urlresolvers
res = urlresolvers.get_resolver(None)
res.reverse_dict

すると,関数またはオブジェクトとRegexURLResolverないしはRegexURLPatternの対応表が入っているのが見える.RegexURLPatternはurls.pyの各行に対応するオブジェクト.いずれもオブジェクトの表示に対応するURLパターンが含まれているから大体わかる.

その中から問題のパターンに対応するキーを見てみると,
<django.contrib.auth.decorators._CheckLogin object at 0x014C1750>
と,@login_requiredによって生成された関数が表示されている.

urls.pyで (r"pattern/$", views.function) のようになっていたところを url(r"pattern/$", views.function, name="pattern.function")のように直して,上の手順でreverse_dictの中身を見てみると,nameで追加した文字列キー(pattern.function)がキーとして追加されているのが確認できる.
コンピュータ > ソフトウェア > Python : comments (328) : trackbacks (0)

Comments

ハンドバッグがちょうど 1 つの色をする必要がありますいくつかハードウェア (シルバーまたはゴールド トーン) にこのアイテム。しかし、我々 はできませんだけ聞かせて、ビジネス、すべてのことパーティーでしたですか?ただし、色、サイズと機能は何千もの。
ルイヴィトン エピ バッグ 白...2013/12/02 01:09 PM
の世界ファッション性の高い格安の何も表示されません。あなた、強盗1 つのお金とハンドバッグを注文された決してあなたの玄関口に達する。彼らはコスト詳細単はより複雑に組み込まれて。
ミュウミュウ マテラッセ 財布 ピンク...2013/12/02 01:09 PM
良い方法必ずはをチェックする、写真任意の特定のコーチ バッグ誰もショップ1。アイデアリード-後、ゲスト チェック アウト商品に財布パーティー細事のラウンドを保持します。
クロエ (chloe) (リリー lily) ラウンドファスナー 長財布...2013/12/02 01:09 PM
場合は、信条が押されていませんに、革とパネルを接着剤で、その後袋は、偽。内部のバッグを開いたときする必要があります正方形の革下見張りの板。
prada 財布 お花...2013/12/02 01:09 PM

Comment Form

  

Trackbacks

Trackback url
Latest Entries
Categories
Recent Comments
Recent Trackback
Archives
Profile
Other
RECOMMEND