Django - ImportError at / blog. No module with urls

I am new to django and in the learning process. While doing some exercises, I came across some errors that I need help with.

Error: ImportError at / blog. No module named url

The urls.py file in the app called blog

from django.conf.urls.defaults import patterns, include, url from mysite.blog.views import archive urlpatterns = patterns('', url(r'^$',archive), ) 

Views.py file in an application called blog

 # Create your views here. from django.template import loader, Context from django.http import HttpResponse from mysite.blog.models import Blogpost def archive(request): posts = BlogPost.objects.all() t = loader.get_template("archive.html") c = context({'posts': posts }) return HttpResponse(t.render(c)) 

The urls.py file in the mysite project

 from django.conf.urls import patterns, include, url # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', # Examples: # url(r'^$', 'mysite.views.home', name='home'), url(r'^blog/', include('mysite.blog.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)), ) 

Traceback:

 File "D:\Super Developer\Python\lib\site-packages\django\core\handlers\base.py" in get_response 89. response = middleware_method(request) File "D:\Super Developer\Python\lib\site-packages\django\middleware\common.py" in process_request 67. if (not urlresolvers.is_valid_path(request.path_info, urlconf) and File "D:\Super Developer\Python\lib\site-packages\django\core\urlresolvers.py" in is_valid_path 531. resolve(path, urlconf) File "D:\Super Developer\Python\lib\site-packages\django\core\urlresolvers.py" in resolve 420. return get_resolver(urlconf).resolve(path) File "D:\Super Developer\Python\lib\site-packages\django\core\urlresolvers.py" in resolve 298. for pattern in self.url_patterns: File "D:\Super Developer\Python\lib\site-packages\django\core\urlresolvers.py" in url_patterns 328. patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "D:\Super Developer\Python\lib\site-packages\django\core\urlresolvers.py" in urlconf_module 323. self._urlconf_module = import_module(self.urlconf_name) File "D:\Super Developer\Python\lib\site-packages\django\utils\importlib.py" in import_module 35. __import__(name) Exception Type: ImportError at /blog Exception Value: No module named urls 

Project / application structure:

  • Mysite
    • manage.py
    • init.py
    • settings.py
    • urls.py
    • wsgi.py
    • The blog
      • init.py
      • models.py
      • views.py
      • urls.py
      • tests.py
      • Templates - archive.html

Python path

['D: \ Super Developer \ Proj \ mysite', 'C: \ Windows \ system32 \ python27.zip', 'D: \ Super Developer \ Python \ DLLs,' D: \ Super Developer \ Python \ lib ',' D: \ Super Developer \ Python \ lib \ plat-win ',' D: \ Super Developer \ Python \ lib \ lib-tk ',' D: \ Super Developer \ Python ',' D: \ Super Developer \ Python \ lib \ site-packages']

+4
source share
8 answers
 url(r'^blog/', include('mysite.blog.urls')), 

It may need to be changed to

 url(r'^blog/', include('blog.urls')), 

Note: there is no prefix 'mysite'.

+5
source

In urls.py blog you import

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

But in urls.py project you use

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

Is it indentation? The latter seems to fail, at least in my life.

+1
source

Make sure you specify the media declaration or static URLs in your application url using

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

not in the application url file.

I had the same problem, it changed, and I no longer had the problem.

+1
source

Perhaps you are missing the __ init __ file . py in your blog folder.

0
source

I think that patterns cannot have a comma after the last element:

 urlpatterns = patterns('', url(r'^$',archive), <-- delete this comma ) 

also try running manage.py shell and import blog.urls if there was no exception

0
source

Try to give the following:

 url(r'^blog/', include('mysite.urls')), 
0
source

My friend went through the django tutorial and got the same error. The error he made was in file structures. In the new django version, he creates two levels of directories, for example mysite / mysite, and he tried to put the folder in mysite / blog instead of mysite / mysite / blog. After making these changes, everything seemed to work fine. Try to look at your structure and hope this helps.

0
source

It looks like you are using Django 1.6 or later. Due to some changes in the structure, this code will not work. Use 1.5 or this code on urls.py blog:

  from django.conf.urls import patterns, include, url from blog import views urlpatterns = patterns('', url(r'^$', views.archive), ) 

And this is in views.py:

  from django.template import loader, Context from django.http import HttpResponse from blog import models def archive(request): posts = models.BlogPost.objects.all() t = loader.get_template('archive.html') c = Context({ 'posts': posts }) return HttpResponse(t.render(c)) 
0
source

All Articles