2011-09-27 5 views
2

내 URL을에 오류가있어뿐만 아니라) "을 튜플을 연결할 수 있습니다" 오류 : URL을에 "튜플"(리스트, 장고

TypeError at/can only concatenate tuple (not "list") to tuple

내가 뭘 잘못했는지 가져올 수 없습니다. 거기에있는 목록은 어디에 있습니까?

from django.conf import settings 

from django.conf.urls.defaults import patterns, include, url 

# Uncomment the next two lines to enable the admin: 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = ('googleapi.apiapp.views', 
    (r'^$', 'first_view'), 
) 

urlpatterns += patterns('', 
    # Uncomment the admin/doc line below to enable admin documentation: 
    (r'^admin/doc/', include('django.contrib.admindocs.urls')), 

    # Uncomment the next line to enable the admin: 
    (r'^admin/', include(admin.site.urls)), 

    # Static files url. 
    (r'^site_media/media/(?P<path>.*)$', 'django.views.static.serve', 
            {'document_root': settings.MEDIA_ROOT}), 
    (r'^site_media/static/(?P<path>.*)$', 'django.views.static.serve', 
           {'document_root': settings.STATIC_ROOT}), 
) 

Django Config

역 추적 :

File "/home/i159/Env/googleapi/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response 
    101.        request.path_info) 
File "/home/i159/Env/googleapi/lib/python2.6/site-packages/django/core/urlresolvers.py" in resolve 
    250.    for pattern in self.url_patterns: 
File "/home/i159/Env/googleapi/lib/python2.6/site-packages/django/core/urlresolvers.py" in _get_url_patterns 
    279.   patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) 
File "/home/i159/Env/googleapi/lib/python2.6/site-packages/django/core/urlresolvers.py" in _get_urlconf_module 
    274.    self._urlconf_module = import_module(self.urlconf_name) 
File "/home/i159/Env/googleapi/lib/python2.6/site-packages/django/utils/importlib.py" in import_module 
    35.  __import__(name) 
File "/home/i159/workspace/apiroot/googleapi/../googleapi/urls.py" in <module> 
    24.          {'document_root': settings.STATIC_ROOT}), 

Exception Type: TypeError at/
Exception Value: can only concatenate tuple (not "list") to tuple 
+0

을 게시하시기 바랍니다 오류의 스택 추적을 완료합니다. – Constantinius

+0

'patterns'은 튜플이 아닌리스트를 반환합니다. @ Constantinius 그것이 그의 링크에 있었다, 나는 그것을 포스트로 옮겼다. – agf

답변

4

오류가 꽤 많은 문제를 설명합니다. urlpatterns의 첫 번째 정의에서 patterns()에 대한 전화가 누락되었습니다.

1

TypeError at/can only concatenate tuple (not "list") to tuple

정확히 무엇을 의미합니까? 그것은 urlpatterns += patterns(...)에 관하여 불평하고있다. +=은 두 가지를 연결 (체인 연결)하려고 시도합니다. urlpatterns은 튜플입니다. patterns(...)이 반환하는 값은 목록입니다. 연결을 위해 이들을 혼합 할 수는 없습니다.

이 문제를 해결하려면 먼저 튜플 또는 목록을 결과로 사용할 것인지 (두 개의 튜플을 연결하여 튜플을 제공하고 두 개의 목록을 연결하면 목록이 제공되는지 여부) 여부를 결정한 다음 그에 따라 한쪽 또는 다른 한쪽을 수정해야합니다.

귀하의 경우 분명히 목록이 필요합니다. urlpatterns에 할당 한 값은 patterns()에 대한 인수 집합과 같습니다. @patrys가 지적한 간단한 설명은 여기에서 함수를 호출하는 것을 의미했다는 것을 의미한다. 그렇게하면 두 번째 호출에서 목록을 추가 (연결) 할 수있는 목록이 제공됩니다.

한 번에 모두 수행 할 수 있습니다 (urlpatterns = patterns(...) + patterns(...)). 위에서 설명한 바와 같이

Where is the list in there?

patterns() 호출의 결과, (또한 문서로, 아마도 - 내가 장고에 대해 아무것도 몰라, 난 디버깅에서 단지 좋은입니다.)