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.