python - AttributeError at /admin/ 'tuple' object has no attribute 'regex' while upgrading django version from 1.5 to 1.8
问题描述
AttributeError at /admin/ 'tuple' object has no attribute 'regex' while upgrading django version from 1.5 to 1.8
urls.py
from django.conf.urls import include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns =[
url(r'^admin/' , include(admin.site.urls)),
]
Traceback
Request Method: GET
Request URL: http://localhost:8000/admin/
Django Version: 1.8.17
Python Version: 2.7.12
File "env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "env/local/lib/python2.7/site-packages/django/contrib/admin/sites.py" in wrapper
254. return self.admin_view(view, cacheable)(*args, **kwargs)
File "env/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
110. response = view_func(request, *args, **kwargs)
File "env/local/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
57. response = view_func(request, *args, **kwargs)
File "env/local/lib/python2.7/site-packages/django/contrib/admin/sites.py" in inner
223. if request.path == reverse('admin:logout', current_app=self.name):
File "env/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse
578. return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
File "env/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in _reverse_with_prefix
432. self._populate()
File "env/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in _populate
307. for name in pattern.reverse_dict:
File "env/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse_dict
337. self._populate()
File "env/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in _populate
307. for name in pattern.reverse_dict:
File "env/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse_dict
337. self._populate()
File "env/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in _populate
297. p_pattern = pattern.regex.pattern
解决方案
In Django 1.8-1.11, urlpatterns
should be a list of url()
s. Somewhere in your code you have a tuple, for example:
urlpatterns =[
(r'^$' , views.my_view),
]
Change it to a url()
urlpatterns =[
url(r'^$' , views.my_view, name='my_view'),
]
Note that you can still use patterns('', ...)
in Django 1.8 and 1.9. If you're upgrading, I would leave the url patterns alone at first and get the project running on Django 1.8. Then fix your urls.py
so that you can upgrade to a later, supported version of Django.
推荐阅读
- c# - 带有 ActivityTrigger 的函数的响应绑定
- php - 连接 2 个表时如何解决重复问题
- sql - 如何使用 SQL 连接表
- python - 删除条目后数据库 ID 递增
- c# - 将字符串解析为双精度时出现 System.FormatException
- java - Ant TaskDef 在 ClassLoader 中失败
- java - 我们可以将存储过程称为 webhook(只需触发并终止)
- java - Selenium 等待 ExpectedConditions.attributeToBe 的行为不符合预期
- sql - 在运行时确定 SQL From 子句?
- docker - 使用 Letsencrypt 的本地 Nginx 反向代理到 Docker 容器