Python Django问题

Python Django问题,python,django,django-urls,Python,Django,Django Urls,我在Eric Matthes的《无淀粉》Python速成班工作。这本书使用的是Python2.0,我试图将其转换为Python3.0。我对include()有问题。我在命令提示符中收到的错误是: django.core.exceptions.ImpropertlyConfigured:将3元组传递给 不支持include()。传递一个2元组,其中包含 模式和app_名称,并提供名称空间参数以包含() 相反 这是我的密码: from django.conf.urls import include,

我在Eric Matthes的《无淀粉》Python速成班工作。这本书使用的是Python2.0,我试图将其转换为Python3.0。我对include()有问题。我在命令提示符中收到的错误是:

django.core.exceptions.ImpropertlyConfigured:将3元组传递给 不支持include()。传递一个2元组,其中包含 模式和app_名称,并提供名称空间参数以包含() 相反

这是我的密码:

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


urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'', include('learning_logs.urls', namespace='learning_logs')),
]

首先,当你问问题时,你应该总是提到你的Django版本。 根据您的代码,这是一种古老的做事方式。如果我没有错的话,从Django 2开始,你必须以一种稍微不同的方式来做这件事

有两种方法可以解决这个问题

第一种方式: 将代码更改为:

from django.conf.urls import include, url
from django.contrib import admin
    learning_logs_patterns = ([
         url(...),
    ], 'learning_logs')  
    
    urlpatterns = [
        url(r'^admin/', include(admin.site.urls)),
        url(r'^polls/', include(learning_logs_patterns, namespace='learning_logs')),
    ]
第二种方式:

在mysite.url.py中

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


urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'', include('learning_logs.urls')),
]
在learning_logs.url.py中

app_name = 'polls'  
urlpatterns = [...]
有关详细信息,请参阅文档:


有一点建议:从Django 2开始,有一种更好的声明URL的方法,称为path()。有关详细信息,请参阅文档:

这是否回答了您的问题?不,问题不在于包含在管理上。问题在于include('learning_logs.url',namespace='learning_logs'),我是PCC的作者。您正在从本书第一版的旧版本开始工作;第一版的后续打印不再使用
url()
函数,而是使用较新的
path()
函数。还有许多其他的变化也很难解决。我强烈建议你从第二版的书中学习这个项目,或者找一个不同的Django特定资源学习。谢谢。我的计划是仍然遵循本章的内容,但是从django文档而不是书中的示例构建代码,但是我将查看第二版。感谢您的详细回复。我正在使用Django3.1。我猜这意味着我正在写的那本书使用的是旧版本。我将尝试实施您的更改[…]是什么意思?你是说直接输入这个,还是说这是一个填充词?目前,我在learning_log.url中的代码是:urlpatterns=[url(r'^$',views.index,name='index'),]这是一个填充词。我无法让这两个代码都工作。第一个选项生成一个新错误。url()缺少1个必需的位置参数:“视图”。我想这可能是因为我在学习日志模式(…)中输入的内容。我现在把它打成这样。学习日志模式=([url('learning\u logs.url'),],'learning\u logs')