Django "No Module Named URLs" 错误

7

已经有很多类似的问题被发布了,但我已经尝试了这些解决方案,但没有用。我正在完成一个基本的Django教程,以下是我的代码:

urls.py

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

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'tango_with_django_project.views.home', name='home'),
    # url(r'^tango_with_django_project/', include('tango_with_django_project.foo.urls')),

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

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

    url(r'^rango/', include('rango.urls')), # ADD THIS NEW TUPLE!
)

views.py

from django.http import HttpResponse

def index(request):
    return HttpResponse("Rango says hello world!")

从settings.py文件中

ROOT_URLCONF = 'tango_with_django_project.urls'

希望大家能帮我入门


你是否在rango应用程序目录中添加了urls.py文件?当使用include('rango.urls')语句时,你告诉Django在rango目录中查找urls.py文件。 - user1876508
谢谢!问题已解决。我将urls.py添加到了我的rango应用目录中,但现在出现了错误,告诉我当前的URL与urls.py文件中的任何URL模式都不匹配。 - jovianlynxdroid
尝试查看目录中的urls.py文件。您是否添加了类似于我的示例的任何URL? - user1876508
3个回答

6
假设我有一个名为FailBook的Django项目,其中包含两个应用程序:post和link。如果我查看FailBook/urls.py文件,我会找到如下内容:
from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),

    url(r'^posts/', include('posts.urls')), ## Custom url include
    url(r'^links/', include('links.urls')), ## Custom url include
)

因此,当您查看目录结构时,您会注意到有额外的两个urls.py文件。

FailBook
|-- posts
   |-- models.py
   |-- urls.py
   |-- views.py
   |-- etc.
|-- links
   |-- models.py
   |-- urls.py
   |-- views.py
   |-- etc.

# urls.py file in the posts folder
from django.conf.urls import patterns, include, url
from .views import PostListView, PostDetailView

urlpatterns = patterns('',

    url(r'^posts/', PostListView.as_view()), 
    url(r'^posts/(?P<post_id>\d+)', PostDetailView.as_view()),
)
# where both views are class based views, hence the as_view function call

我不太明白您所说的“类似于您示例的添加URL”的意思。抱歉,您能进一步解释一下吗? - jovianlynxdroid
你知道如何编写视图并将它们附加到urls.py文件中吗?如果不知道,请阅读https://docs.djangoproject.com/en/1.6/intro/tutorial03/的前几节。 - user1876508
谢谢!我看了Django教程,终于懂了。 - jovianlynxdroid

3
我知道这个问题已经解决了,但是提供的解决方案对我没有帮助。当我遇到这个错误时,解决方法很简单,就是检查所有应该有urls.py文件的目录。我发现urls.py没有被添加到我们从SVN仓库中拉出来的Django应用程序中。
我建议在projectname->projectname->urls.py中查找所有与应用程序特定url相关的引用,并验证每个引用是否存在urls.py文件。

0

我在进行Pluralsight Django教程时遇到了这个问题。我注意到两件事:

1)我正在使用Django 2.0,而Django 1.11中的url()命令已被re_path()取代,在2.0中通过以下方式导入:

from django.urls import path, include, re_path 

这将替换掉,

from django.conf.urls import url, include

看这个:Django 2.0 发布说明,以及

2)我不小心从子文件夹中调用了要导入的文件,url.py,而不是urls.py,例如rango/url.py而不是rango/urls.py。

这可能是主要问题,修复后一切都很顺利。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接