Python Django教程,get:TypeError at/admin/argument to reversed()必须是一个序列
我正在努力学习django 1.8版教程,但我遇到了一个错误,我一直无法理解。我以为我是在跟着教程走到T 我已设置以下树:Python Django教程,get:TypeError at/admin/argument to reversed()必须是一个序列,python,django-1.8,Python,Django 1.8,我正在努力学习django 1.8版教程,但我遇到了一个错误,我一直无法理解。我以为我是在跟着教程走到T 我已设置以下树: 。 ├── dj_项目 │ ├── __初始值 │ ├── __初始值 │ ├── 设置.py │ ├── 设置.pyc │ ├── url.py │ ├── url.pyc │ ├── wsgi.py │ └── wsgi.pyc ├── manage.py └── 民意测验 ├── 管理员 ├── 管理员.pyc ├── __初始值 ├─
。
├── dj_项目
│ ├── __初始值
│ ├── __初始值
│ ├── 设置.py
│ ├── 设置.pyc
│ ├── url.py
│ ├── url.pyc
│ ├── wsgi.py
│ └── wsgi.pyc
├── manage.py
└── 民意测验
├── 管理员
├── 管理员.pyc
├── __初始值
├── __初始值
├── 迁移
│ ├── 0001_首字母.py
│ ├── 0001_首字母.pyc
│ ├── __初始值
│ └── __初始值
├── models.py
├── 模型.pyc
├── tests.py
├── url.py
├── url.pyc
├── views.py
└── views.pyc
并且,正如polls/url.py的教程中所述:
from django.conf.urls import url
from . import views
urlpatterns = {
url(r'^$', views.index, name='index'),
}
对于我的dj_项目/url.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)),
]
在polls/views.py中,我有:
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse("is there something here?")
因此,当我转到/polls
时,我看到“这里有什么东西吗”,但如果我转到/admin
,我会得到错误:类型错误在/admin/argument to reversed()必须是一个序列。如果我在dj_project/urls.py
中从urlpatterns中删除轮询,管理员就可以了
有什么问题吗?我似乎无法理解。在polls/url.py文件中,
您要将urlpatterns声明为dict,它必须是一个列表
改变
urlpatterns = {
url(r'^$', views.index, name='index'),
}
致:
你想在任何地方使用吗?可以是一套吗?或者您可以声明一个名为urlpatterns的集合,然后将其更改为列表吗?我不确定您是否真的想将urlpatterns
转换为set
,或者只是误解了必须将其设置为我答案的列表部分。你能说得更具体些吗?比如,如果我想为数据库中的每个对象都有一个url,我能把它转换成一个集合,删除可能的重复项,然后返回到一个列表中吗?你可以将urlpatterns
转换成set
来删除重复项,并改回list
。但我认为这样做没有什么意义,因为urlpatterns通常是手工编写的。为什么要为数据库中的每一行/对象创建URL。为什么不使用一个简单的正则表达式呢?有趣的事实是:如果你定义一个dict(这可能是错误的)并用格式后缀模式()处理它,它就可以了-函数似乎不介意并正确地转换它。我用dict和function为我的新应用程序复制了一点代码,然后删除了格式后缀模式,整个事情就轰隆起来。
urlpatterns = [
url(r'^$', views.index, name='index'),
]