Я пытаюсь отменить именованный URL с именем blog-home
, но независимо от того, что я пытаюсь, всегда выдается AttributeError
с описанием 'NoneType' object has no attribute 'rindex'
.
Я пытался reverse("blog-home")
, reverse("blogengine:blog-home")
и даже reverse("admin:index")
и reverse(resolve("/admin/"))
просто чтобы проверить, был ли мой код в проблеме.
След:
Traceback (most recent call last):
File "", line 1, in
File "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\core\urlresolvers.py", line 368, in reverse
app_list = resolver.app_dict[ns]
File "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\core\urlresolvers.py", line 241, in _get_app_dict
self._populate()
File "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\core\urlresolvers.py", line 208, in _populate
for name in pattern.reverse_dict:
File "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\core\urlresolvers.py", line 229, in _get_reverse_dict
self._populate()
File "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\core\urlresolvers.py", line 220, in _populate
lookups.appendlist(pattern.callback, (bits, p_pattern))
File "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\core\urlresolvers.py", line 169, in _get_callback
mod_name, func_name = get_mod_func(self._callback_str)
File "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\core\urlresolvers.py", line 113, in get_mod_func
dot = callback.rindex('.')
AttributeError: 'NoneType' object has no attribute 'rindex'
Я действительно не уверен в том, почему это происходит, тем более, что я успешно использовал reverse
в других проектах с той же версией Python и Django, и я до сих пор не нашел ничего об этой ошибке.
Мои urls.py:
from django.conf.urls.defaults import patterns, include, url
from . import views
from .models import Post, Tag
from django.views.generic import DetailView, ListView
urlpatterns = patterns('',
url(r'^$', ListView.as_view(queryset=Post.objects.order_by('-pub_date')), name="blog-home"),
url(r'^yadda/$', None)
)
Что импортируется этим urls.py:
from django.conf.urls.defaults import patterns, include, url
from django.contrib import admin
admin.autodiscover()
from django.contrib.sitemaps import FlatPageSitemap
class FlatPageSitemap(FlatPageSitemap):
changefreq = "daily"
sitemaps = {
'flatpages': FlatPageSitemap,
}
import django.contrib.sitemaps.views
from . import blogengine
urlpatterns = patterns('',
url(r'^', include(blogengine.urls)),
url(r'^sitemap\.xml', django.contrib.sitemaps.views.sitemap, {'sitemaps': sitemaps}),
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
)
Изначально я собирался использовать его из системы шаблонов Django с тегом url ({% url blog-home %}
).