モデルフォーム クラスで URL を取得したい。The included urlconf manager.urls does not have any patterns in it で見ました
。しかし、reverse_lazy関数は私の場合は機能しません。
私の場合:
captchahelperはrootのアプリです。
ルート urlpatterns (ルート プロジェクトの下の urls.py):
urlpatterns = patterns("",
.....
# captcha
url(r'^captcha/', include('captchahelper.urls')),
.....
}
captcha urlpatterns (captchahelper プロジェクトの urls.py):
urlpatterns = patterns('',
url(r'^$', views.captcha , name="views_captcha"),
url(r'^refresh/$', views.refresh , name="views_refresh_captcha"),
)
captchahelper プロジェクトの view.py
def captcha(request):
.....
return HttpResponse(captcha.gen_img_by_code(code),'image/jpeg')
得る:
class CaptchaForm(forms.ModelForm):
.....
captcha = Captcha()
encoded = captcha.get_encrypt_code()
captcha_image = urlresolvers.reverse_lazy('views_captcha') + '?encoded='+encoded
.....
def clean_captcha_text(self):
....
エラーが発生します:
/account/signup/ は現在の URL です (root.urls にも含まれます)。訪問者がこのページを表示すると、上記のクラスが対応するビュー関数で初期化されます。
ImproperlyConfigured at /account/signup/
The included urlconf root.urls doesn't have any patterns in it
D:\Python27\lib\site-packages\django\core\urlresolvers.py in reverse
return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)) ...
▼ Local vars
Variable Value
ns_pattern
''
viewname
'views_captcha'
args
[]
current_app
None
prefix
u'/'
parts
['views_captcha']
resolver
<RegexURLResolver root.urls (None:None) ^/>
kwargs
{}
path
[]
resolved_path
[]
urlconf
'root.urls'
view
'views_captcha'
私はASP MVC3から来ているので、djangoはとても複雑だと感じています Url.Action("CaptchaController", "CaptchaView", new { encoded = "encoded"})
。MVC3のようなステートメントからクエリ文字列を含むURLを簡単に生成できます.しかし、djangoでクエリ文字列を含むURLを生成したい場合、コードは次のようになりますreverse('captcha') + '?encoded=' + encoded
。本当に醜い....