Je m'excuse si c'est un doublon. J'ai parcouru le web et essayé plusieurs solutions. J'ai construit un téléchargeur d'image qui télécharge les images au bon emplacement mais, je pense que j'ai quelque chose dans mon urls.py qui m'empêche d'afficher les images.Affichage d'images dans Django - Configuration d'urls.py
Les lignes commentées sont des tentatives que j'ai faites mais je n'ai pas de chance. urls.py:
from django.conf.urls import url
from . import views
from django.conf import settings
from django.conf.urls.static import static
app_name = 'orders'
urlpatterns = [
url(r'^$',views.index,name='index'),
url(r'^invoice/$', views.invoice, name='invoice'),
url(r'^photo/$', views.UploadView.as_view()),
#static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT),
#static(r'^media/', document_root=settings.MEDIA_ROOT),
#url("^media/(?P<path>.*)$","django.views.static.serve",{"document_root": settings.MEDIA_ROOT}),
url(r'^catalog/$', views.catalog, name='catalog'),
url(r'^postStampsShipments/$', views.postStampsShipments, name='postStampsShipments'),
url(r'^catalog/(?P<SKU>[^/]+)/$', views.catalogDetail, name='catalogDetail'),
url(r'^catalogchange/(?P<SKU>[^/]+)/$', views.catalogChange, name='catalogChange'),
url(r'^updateOSTKCat/$', views.updateCatalogOSTK, name='OSTKCat'),
url(r'^items/$', views.item, name='items'),
url(r'^items/(?P<SKU>[^/]+)/$', views.itemDetail, name='itemDetail'),
url(r'^inventory/$', views.inventory, name='inventory'),
url(r'^inventoryChange/$', views.inventoryChange, name = 'inventoryChange'),
url(r'^test/$', views.test, name='test'),
url(r'^genBarcode/$', views.genBarcode, name='genBarcode'),
url(r'^barcode/$', views.barcode, name='barcode'),
url(r'^(?P<retailOrderNumber>[^/]+)/', views.orderDetail,name = 'Detail'),
url(r'^(?P<retailOrderNumber>[^/]+)/shipments/', views.shipments, name='shipments'),]
Vue:
def itemDetail(request,SKU):
edit = request.GET.get('edit','')
itm = Item.objects.filter(SKU=SKU)[0]
vendors = Vendor.objects.all()
cat = Category.objects.all()
template = loader.get_template('orders/itemDetail.html')
context = {
'itemDetail':itm,'SKU':SKU,'edit':edit,'vendors':vendors,'cat':cat
}
return HttpResponse(template.render(context, request))
settings.py:
MEDIA_URL = 'media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
code dans le modèle:
<td>{% load static %}
{{ img.image.url }}
<img src="{{ img.image.url }}">
</td>
erreur habituelle je vois:
Unhandled exception in thread started by <function wrapper at 0x0366AAB0>
Traceback (most recent call last):
File "C:\Program Files (x86)\Anaconda2\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper
fn(*args, **kwargs)
File "C:\Program Files (x86)\Anaconda2\lib\site-packages\django\core\management\commands\runserver.py", line 121, in inner_run
self.check(display_num_errors=True)
File "C:\Program Files (x86)\Anaconda2\lib\site-packages\django\core\management\base.py", line 374, in check
include_deployment_checks=include_deployment_checks,
File "C:\Program Files (x86)\Anaconda2\lib\site-packages\django\core\management\base.py", line 361, in _run_checks
return checks.run_checks(**kwargs)
File "C:\Program Files (x86)\Anaconda2\lib\site-packages\django\core\checks\registry.py", line 81, in run_checks
new_errors = check(app_configs=app_configs)
File "C:\Program Files (x86)\Anaconda2\lib\site-packages\django\core\checks\urls.py", line 14, in check_url_config
return check_resolver(resolver)
File "C:\Program Files (x86)\Anaconda2\lib\site-packages\django\core\checks\urls.py", line 24, in check_resolver
for pattern in resolver.url_patterns:
File "C:\Program Files (x86)\Anaconda2\lib\site-packages\django\utils\functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Program Files (x86)\Anaconda2\lib\site-packages\django\urls\resolvers.py", line 313, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "C:\Program Files (x86)\Anaconda2\lib\site-packages\django\utils\functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Program Files (x86)\Anaconda2\lib\site-packages\django\urls\resolvers.py", line 306, in urlconf_module
return import_module(self.urlconf_name)
File "C:\Program Files (x86)\Anaconda2\lib\importlib\__init__.py", line 37, in import_module
__import__(name)
File "C:\MintJules\WebApp\MintJules\MintJules\urls.py", line 25, in <module>
url(r'^orders/',include('orders.urls')),
File "C:\Program Files (x86)\Anaconda2\lib\site-packages\django\conf\urls\__init__.py", line 50, in include
urlconf_module = import_module(urlconf_module)
File "C:\Program Files (x86)\Anaconda2\lib\importlib\__init__.py", line 37, in import_module
__import__(name)
File "C:\MintJules\WebApp\MintJules\orders\urls.py", line 25, in <module>
url(r'^media/(.*)$', 'django.views.static.serve', {'document_root':os.path.join(os.path.dirname(__file__), 'static')}),
File "C:\Program Files (x86)\Anaconda2\lib\site-packages\django\conf\urls\__init__.py", line 85, in url
raise TypeError('view must be a callable or a list/tuple in the case of include().')
TypeError: view must be a callable or a list/tuple in the case of include().
Oui. C'était ... je ne peux pas croire que j'ai raté ça. Merci!! – ColtonChristensen1
S'il vous plaît ne pas oublier cette solution ne fonctionne que dans DEBUG = True. Il est défini comme suit: ' si settings.DEBUG: urlpatterns + = statique (settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)' En production, vous devez servir vos fichiers statiques et des médias en utilisant des outils tels que Nginx – deaspo
@ Deaspo Oui. Une belle note. – wencakisa