我正在尝试撤消名为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'
我真的不确定为什么会发生这种情况,特别是因为我已经在使用相同版本的Python和Django的其他项目上成功使用reverse
而我在其他任何地方都没有找到任何有关此错误的内容远。
我的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 %}
)。
答案 0 :(得分:4)
不要这样做:
url(r'^yadda/$', None)
如果在conf中指定了URL,则必须将其绑定到某个位置。如果您不想绑定它,请不要指定它。