Je suis nouveau sur Django et j'ai actuellement des problèmes pour afficher les images téléchargées dans Django Admin. J'ai suivi beaucoup de Q et A postés ici dans stackoverflow mais de ceux qui ont fonctionné dans mon problème. J'espère que tous les ninjas de codage actifs ici pourraient m'aider avec ce problème. Voici la vue détaillée du problème:Django Admin: Déterminer le bon chemin de téléchargement de l'image
J'ai défini le MEDIA_ROOT et MEDIA_URL dans settings.py
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) MEDIA_ROOT = os.path.join(BASE_DIR, "media") MEDIA_URL = "/media/"
Ceci est mon modèle de téléchargement dans models.py:
from django.utils.html import mark_safe class ImageDetails(models.Model): image = models.ImageField(null=True) def image_img(self): if self.image: return mark_safe('<img src="%s" height="125px" width="125px"/>' % (self.image.url)) else: return '(No image found)' image_img.short_description = 'Thumbnail'
Dans mon application urls.py:
urlpatterns = [ url(r'^inputImage', views.inputImage, name='inputImage'), url(r'', views.index), ] urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Dans mon admin.py:
class ImageDetailsAdmin(admin.ModelAdmin): fields = ["image"] #for file upload list_display = ("image_img",) admin.site.register(ImageDetails, ImageDetailsAdmin)
L'image a été enregistrée avec succès à ProjectDir/médias. Le code HTML renvoie l'URL: http://127.0.0.1:8000/media/imagename.jpg à la balise img. Mais la page ne parvient pas à charger l'image (je serai redirigé vers la page d'index chaque fois que vous utilisez l'URL http://127.0.0.1:8000/media/imagename.jpg). J'utilise Django version 1.10
Vérifiez MEDIA_URL - vous avez affecté deux fois. Je pense que vous vouliez utiliser MEDIA_ROOT dans la première occurrence. – Abhinav
Opps. c'était en fait la racine des médias dans le code original ici. Fait l'édition ici. – jonilyn2730