2015-08-14 3 views
4

Я прохожу через учебник django для версии 1.8, и я получаю сообщение об ошибке, которое я застрял, и не могу как представляется, выяснить. Я думал, что после урока в значительной степени к Т.Учебник по Django, Getting: TypeError at/admin/argument to reverseed() должен быть последовательностью

Я следующее дерево настройки:

. ├── dj_project │   ├── __init__.py │   ├── __init__.pyc │   ├── settings.py │   ├── settings.pyc │   ├── urls.py │   ├── urls.pyc │   ├── wsgi.py │   └── wsgi.pyc ├── manage.py └── polls ├── admin.py ├── admin.pyc ├── __init__.py ├── __init__.pyc ├── migrations │   ├── 0001_initial.py │   ├── 0001_initial.pyc │   ├── __init__.py │   └── __init__.pyc ├── models.py ├── models.pyc ├── tests.py ├── urls.py ├── urls.pyc ├── views.py └── views.pyc

и есть, так же, как в учебнике для опросов/urls.py :

from django.conf.urls import url 

from . import views 

urlpatterns = { 
    url(r'^$', views.index, name='index'), 
} 

и для моего dj_project/urls.py:

from django.conf.urls import include, url 
from django.contrib import admin 

urlpatterns = [ 

    url(r'^polls/', include('polls.urls')), 
    url(r'^admin/', include(admin.site.urls)), 

] 

и опросов/views.py я есть:

from django.shortcuts import render 
from django.http import HttpResponse 

def index(request): 
    return HttpResponse("is there something here?") 

так, когда я иду в <mysite>/polls я вижу «есть что-то здесь», но если я иду в <mysite>/admin, я получаю ошибку : TypeError at /admin/ argument to reversed() must be a sequence. Если я удаляю опросы с urlpatterns в dj_project/urls.py, администратор приходит в порядке.

В чем может быть проблема? Кажется, я не понимаю.

+0

Я считаю, так как вы – asiviero

+0

Вы пытаетесь использовать [ 'reverse'] (https://docs.djangoproject.com/en/1.8 /ref/urlresolvers/#django.core.urlresolvers.reverse) где угодно? – NightShadeQueen

ответ

20

В опросах/urls.py файлах, , вы объявляете urlpatterns как dict, это должен быть список.

Изменение

urlpatterns = { 
    url(r'^$', views.index, name='index'), 
} 

к:

urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
] 
+0

Это может быть набор? Или вы можете объявить набор с именем urlpatterns, а затем изменить его на список? –

+0

Я не уверен, что вы действительно хотите преобразовать 'urlpatterns' в' set' или просто неправильно поняли *, он должен быть установлен как часть * моего ответа. Можете быть более конкретными? – v1k45

+0

Как если бы я хотел иметь URL-адрес для каждого объекта в базе данных, смогу ли я его преобразовать в набор, удалить возможные дубликаты, а затем вернуться в список? –