Django-элемент последовательности обновления словаря #0 имеет длину 1; 2 требуется [дубликат]
этот вопрос уже есть ответ здесь:
- ошибка: "элемент последовательности обновления словаря #0 имеет длину 1; 2 требуется" на Django 1.4 11 ответов
после того, как я создал новые URL-адреса, я получил эту ошибку
ValueError at /blog/ dictionary элемент последовательности обновления #0 имеет длину 1; 2 требуется
Traceback
Request Method: GET
Request URL: http://127.0.0.1:8000/blog/
Django Version: 1.7.2
Python Version: 3.4.1
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'modeltranslation',
'blog')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
Traceback:
File "C:Python34libsite-packagesdjangocorehandlersbase.py" in get_response
98. resolver_match = resolver.resolve(request.path_info)
File "C:Python34libsite-packagesdjangocoreurlresolvers.py" in resolve
345. sub_match = pattern.resolve(new_path)
File "C:Python34libsite-packagesdjangocoreurlresolvers.py" in resolve
345. sub_match = pattern.resolve(new_path)
File "C:Python34libsite-packagesdjangocoreurlresolvers.py" in resolve
222. kwargs.update(self.default_args)
Exception Type: ValueError at /blog/
Exception Value: dictionary update sequence element #0 has length 1; 2 is required
Я использую этот urls
# /project/urls.py
from blog.urls import urlpatterns as blog_urls
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^blog/', include(blog_urls, 'blog')),
)
# /blog/urls.py
urlpatterns = patterns('blog.views',
url(r'^$', 'index', 'index'),
url(r'^category/(?P<category_id>d+)/$', 'category', 'category'),
)
# /blog/views.py
def index(request):
render(request, 'blog/index.html')
def category(request, category_id):
render(request, 'blog/index.html')
почему я получил эту ошибку? Никогда не видел его раньше, и я не знаю, почему я получаю эту ошибку...
1 ответов
проблема в этой строке:
url(r'^category/(?P<category_id>\d+)/$', 'category', 'category')
третьим позиционным параметром является дополнительный контекст dict. Если вы хотите передать имя вместо этого, вам нужно использовать ключевое слово arg:
url(r'^category/(?P<category_id>\d+)/$', 'category', name='category')