简体   繁体   中英

Django - 'module' object is not callable

I'm trying to serve images from the database with django, but when I add

+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

to my urlpatterns i get this error: TypeError at /: module object is not callable

this is the traceback:

File "/home/watch/Documents/projects/herokuapp/venv/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
  35.             response = get_response(request)

File "/home/watch/Documents/projects/herokuapp/venv/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  113.         resolver_match = resolver.resolve(request.path_info)

File "/home/watch/Documents/projects/herokuapp/venv/lib/python3.6/site-packages/django/urls/resolvers.py" in resolve
  494.             for pattern in self.url_patterns:

File "/home/watch/Documents/projects/herokuapp/venv/lib/python3.6/site-packages/django/utils/functional.py" in __get__
  36.         res = instance.__dict__[self.name] = self.func(instance)

File "/home/watch/Documents/projects/herokuapp/venv/lib/python3.6/site-packages/django/urls/resolvers.py" in url_patterns
  536.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)

File "/home/watch/Documents/projects/herokuapp/venv/lib/python3.6/site-packages/django/utils/functional.py" in __get__
  36.         res = instance.__dict__[self.name] = self.func(instance)

File "/home/watch/Documents/projects/herokuapp/venv/lib/python3.6/site-packages/django/urls/resolvers.py" in urlconf_module
  529.             return import_module(self.urlconf_name)

File "/usr/lib/python3.6/importlib/__init__.py" in import_module
  126.     return _bootstrap._gcd_import(name[level:], package, level)

File "<frozen importlib._bootstrap>" in _gcd_import
  994. <source code not available>

File "<frozen importlib._bootstrap>" in _find_and_load
  971. <source code not available>

File "<frozen importlib._bootstrap>" in _find_and_load_unlocked
  955. <source code not available>

File "<frozen importlib._bootstrap>" in _load_unlocked
  665. <source code not available>

File "<frozen importlib._bootstrap_external>" in exec_module
  678. <source code not available>

File "<frozen importlib._bootstrap>" in _call_with_frames_removed
  219. <source code not available>

File "/home/watch/Documents/projects/herokuapp/mysite/mysite/urls.py" in <module>
  27. ]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Exception Type: TypeError at /
Exception Value: 'module' object is not callable

I tried using it in both the main urls.py and the app urls.py, but it didn't work.

my media_root and media_urls are the following:

abspath = lambda *p: os.path.abspath(os.path.join(*p))

PROJECT_ROOT = abspath(os.path.dirname(__file__))

MEDIA_ROOT = abspath(PROJECT_ROOT, 'media')
MEDIA_URL = '/media/'

i tried reimporting everything with

from django.conf.urls import *

but it didn't work either.

edit, these are my imports:

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

I'm using the last version of django and deploying in heroku (locally with heroku local)

Change

from django.conf.urls import static

to

from django.conf.urls.static import static

and you're good to go.

from django.conf.urls.static import static

写这一行,而不是

from django.conf.urls import static

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM