RedirectViewでリダイレクト先の指定にnamed urlを使う

views.pyを直していたらテストが全部こんなエラーになってちょっと焦った

ImproperlyConfigured: The included urlconf apps.urls doesn't have any patterns in it

RedirectViewのurlを取得するのにreverseを使ったのが原因

from django.views.generic import RedirectView
from django.core.urlresolvers import reverse

class SampleView(RedirectView):
   url = reverse('foo:bar')

urls.pyが読み終わる前に参照することになるから、エラーになるっぽい?


こんなときのためにreverse_lazyというのが用意されていて、そちらを使うようにしたら直った

from django.views.generic import RedirectView
from django.core.urlresolvers import reverse_lazy

class SampleView(RedirectView):
   url = reverse_lazy('foo:bar')

参考 : Fixed #5925 -- Added new lazily evaluated version of django.core.urlreso... · 79afd55 · django/django · GitHub