2015-01-10 8 views
6

Nachdem ich neue URLs erstellt, iDjango - Wörterbuch-Aktualisierungssequenzelement # 0 hat Länge 1; 2 erforderlich ist

Valueerror diesen Fehler bekam bei/Blog/Verzeichnisaktualisierungsauswähler Sequenzelement # 0 hat die Länge 1; 2 erforderlich

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 

Ich benutze diese 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') 

Warum ich diese Fehlermeldung erhalten? Nie sah es vor, und ich weiß nicht, warum ich diesen Fehler ...

Antwort

19

Das Problem ist, diese Zeile:

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

Der dritte Positionsparameter ist der zusätzliche Kontext dict. Wenn Sie den Namen stattdessen übergeben möchten, müssen Sie ein Stichwort arg verwenden:

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

durch Hinzufügen des ‚name =‘ der Trick! – Dror

+0

Kleine Dinge, die jeder vergessen und viel Zeit damit verschwenden kann, sie zu beseitigen !! –

+0

Danke, es hat mir wirklich viel Zeit gespart. –

Verwandte Themen