2015-01-10 9 views
6

Dopo ho creato nuovi URL, ho ottenuto questo erroreDjango - L'elemento di sequenza di aggiornamento del dizionario # 0 ha lunghezza 1; 2 è necessario

ValueError a/blog/dizionario aggiornamento sequenza elemento # 0 ha lunghezza 1; 2 è necessario

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:\Python34\lib\site-packages\django\core\handlers\base.py" in get_response 
    98.     resolver_match = resolver.resolve(request.path_info) 
File "C:\Python34\lib\site-packages\django\core\urlresolvers.py" in resolve 
    345.      sub_match = pattern.resolve(new_path) 
File "C:\Python34\lib\site-packages\django\core\urlresolvers.py" in resolve 
    345.      sub_match = pattern.resolve(new_path) 
File "C:\Python34\lib\site-packages\django\core\urlresolvers.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 

Io uso questo URL

# /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') 

perché ho ottenuto questo errore? Mai visto prima e non so perché ho questo errore ...

risposta

19

Il problema è questa linea:

url(r'^category/(?P<category_id>\d+)/$', 'category', 'category') 

Il terzo parametro posizionaleè il dict contesto in più. Se si vuole passare il nome, invece, è necessario utilizzare un ARG parola chiave:

url(r'^category/(?P<category_id>\d+)/$', 'category', name='category') 
+0

grazie, aggiungendo il 'name =' ha fatto il trucco! – Dror

+0

Piccole cose che chiunque può dimenticare e sprecare un sacco di tempo a debuggarle !! –

+0

Grazie, mi ha davvero risparmiato un sacco di tempo. –

Problemi correlati