2012-04-17 5 views
2

django 1.4にURLの逆転コードを載せた奇妙なものがあります。Django:テンプレート内のURLを逆にすることはできますが、ビュー内ではできないのはなぜですか?

私はsettings.views.app_viewという名前のビューを持っています。私は、URLを手動で入力してページを見て、基本的なURLパターンが機能していることを確認しました。

url(r'^app/$', 'settings.views.app_view', name='settings_app_view'), 

テンプレートのURLを逆転して動作します。

{% url settings_app_view %} 

ので、URLパターンが動作し、私は、テンプレート内のURLを取得する呼び出すリンクをクリックして、正しいページを表示することができます。

なぜ、reverse()を使用してビュー内のURLを取得できないのですか?すべてのコードが明確に表示されているだけでなく、ページを見てテンプレートのURLを逆転したときに、明確に設定され、正しく機能しています。

私は何か小さいものを欠いている必要があります。誰がそれが何であるか知っていますか?

ViewDoesNotExist at /settings/app/ 
Exception Value: Could not import settings.views.app_view. View does not exist in module settings.views. 

# The highlighted code 
url = reverse("settings_app_view") 

答えて

3

正確にあなたのコードでreverse()が実行されますか? Pythonファイルのインポート中にreverse()が実行されると、再帰的なインポートを取得できます。残念ながら、再帰的なインポートは異なる結果を持つことができます:はAttributeErrorこの属性を持っている必要があり、モジュール上で発生する可能性があります....

参照:https://docs.djangoproject.com/en/dev/ref/urlresolvers/#reverse-lazy

+0

はい、あなたは完全に全く正しいです。私はビュー定義の外にその逆()を置いていました。定義の中でそれを動かすと、すべてがクリアされました。 |私は "怠惰な逆django"、おかげで読んでみましょう。 – OpCodeOmega

関連する問題