0

I am new to django and I was trying to create a file upload page following Need a minimal Django file upload example instructions. However, I keep getting "Import file is not supported" error.

Actual error seems to be happening here:

C:\Users\AppData\Local\Continuum\Anaconda\lib\importlib\__init__.py in import_module
            __import__(name) ...

Full traceback:

    Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/

Django Version: 1.8
Python Version: 2.7.13
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'myapp')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware')


Traceback:
File "C:\Users\..\AppData\Local\Continuum\Anaconda\lib\site-packages\django-1.8-py2.7.egg\django\core\handlers\base.py" in get_response
  119.                 resolver_match = resolver.resolve(request.path_info)
File "C:\Users\..\AppData\Local\Continuum\Anaconda\lib\site-packages\django-1.8-py2.7.egg\django\core\urlresolvers.py" in resolve
  368.                     sub_match = pattern.resolve(new_path)
File "C:\Users\..\AppData\Local\Continuum\Anaconda\lib\site-packages\django-1.8-py2.7.egg\django\core\urlresolvers.py" in resolve
  240.             return ResolverMatch(self.callback, args, kwargs, self.name)
File "C:\Users\..\AppData\Local\Continuum\Anaconda\lib\site-packages\django-1.8-py2.7.egg\django\core\urlresolvers.py" in callback
  247.         self._callback = get_callable(self._callback_str)
File "C:\Users\..\AppData\Local\Continuum\Anaconda\lib\site-packages\django-1.8-py2.7.egg\django\utils\lru_cache.py" in wrapper
  101.                     result = user_function(*args, **kwds)
File "C:\Users\..\AppData\Local\Continuum\Anaconda\lib\site-packages\django-1.8-py2.7.egg\django\core\urlresolvers.py" in get_callable
  112.             if submod and not module_has_submodule(import_module(parentmod), submod):
File "C:\Users\..\AppData\Local\Continuum\Anaconda\lib\importlib\__init__.py" in import_module
  37.     __import__(name)

Exception Type: ImportError at /
Exception Value: Import by filename is not supported.

URLS.PY

from django.conf.urls import patterns, include, url
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
import myapp

#from django_project import myapp
#from myapp import views as myapp_views

urlpatterns = [
    # Examples:
    # url(r'^$', 'django_project.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),
    url(r'^$', 'http://127.0.0.1:8000/home/', name='home'),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^', include('myapp.urls'))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

MYAPP/URLS.PY

from django.conf.urls import patterns, include, url
#from django_project import myapp
import views as myapp_view


urlpatterns =  [
    #url(r'^list/$', include('myapp.views'))
    url(r'^list/$', myapp_view.list, name='list')
]

VIEWS.PY

from django.shortcuts import render

# Create your views here.
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse

from myapp.models import Document
from myapp.forms import DocumentForm

def list(request):
    # Handle file upload
    if request.method == 'POST':
        form = DocumentForm(request.POST, request.FILES)
        if form.is_valid():
            newdoc = Document(docfile = request.FILES['docfile'])
            newdoc.save()

            # Redirect to the document list after POST
            return HttpResponseRedirect(reverse('myapp.views.list'))
    else:
        form = DocumentForm() # A empty, unbound form

    # Load documents for the list page
    documents = Document.objects.all()

    # Render list page with the documents and the form
    return render_to_response(
        'myapp/list.html',
        {'documents': documents, 'form': form},
        context_instance=RequestContext(request)
    )
Y S
  • 76
  • 3

1 Answers1

0

This is where your error occurs:

url(r'^$', 'http://127.0.0.1:8000/home/', name='home'),

As a commenter suggested, this should be:

from .views import view_name
url(r'^$', view_name, name='home'),

Learn more about how this works here: https://docs.djangoproject.com/en/1.11/intro/tutorial03/#writing-more-views

souldeux
  • 3,615
  • 3
  • 23
  • 35