2012-02-10 8 views
3

状況は短いです。何らかの理由で、reverse()メソッドが機能しません。 はインポートできませんでした:APP urls.pyDjango HttpResponseRedirectとreverse()

url(r'^thanks/$', 'enrollment.views.thanks', name='enroll_thanks'), 

とviews.py

from django.core.urlresolvers import reverse 
def thanks(request): 
    return render_to_response('enrollment/thanks.html', {}, context_instance=RequestContext(request)) 

def enroll(request): 
    ''' some code for handling the form''' 
    return HttpResponseRedirect(reverse('enrollment.views.thanks')) 

でエラー以下この逆の原因で

プロジェクトurls.pyで

url(r'^enrollment/', include('project.enrollment.urls')), 

project.views。エラーがなかった:_get_callbackでファイル../django/core/urlresolvers.pyにビュー

という名前のモジュール、ライン167

これが動作しない理由を任意のアイデア?次のステップは、パラメータを使用して感謝のビューを呼び出すことですが、このセットアップが完了した後は簡単に行う必要があります。 views.pyにさらに何かインポートする必要がありますか?

答えて

4

reverseのドキュメントから:どのURL名がどのパターンにマップされているかを調べるために、reverse()関数はすべてのURLconfファイルをインポートして各ビューの名前を調べる必要があります。ビュー関数のいずれかをインポートしているときにエラーが発生した場合、そのビュー関数がリバースしようとしていない場合でも、reverse()によってエラーが発生します。

あなたのURLのいずれかが参照していますproject.views. ...?

+0

自分自身のコードがあまりにも盲目です。私は存在しなかったproject.viewsのURLを持っていました。それは以前のものには影響しませんでしたが、reverse()はそれを気に入らなかった。ドキュメントのように言った。 – rice

-1

あなたのモジュールレイアウトはあまり分かりませんが、urls.pyのinclude()行に基づいて、 "project"を追加したいかもしれません。あなたのreverse()コールの引数にも渡します。

reverse('project.enrollment.views.thanks') 

これは、ビューにバグがある可能性があります。

関連する問題