Django Admin:确定正确的图片上传路径



我是Django的新手,我目前在Django Admin中显示上传的图像时有问题。我已经遵循了许多张贴的Q和A在这里的stackoverflow,但那些工作在我的问题。我希望任何活跃的编码忍者可以帮助我解决这个问题。以下是问题的详细视图:

  1. 我在settings.py

    中定义了MEDIA_ROOT和MEDIA_URL
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    MEDIA_ROOT = os.path.join(BASE_DIR, "media")
    MEDIA_URL = "/media/"
    
  2. 这是我在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'
    
  3. In my 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)
    
  4. In my admin.py:

    class ImageDetailsAdmin(admin.ModelAdmin):
        fields = ["image"]  #for file upload
        list_display = ("image_img",)
    admin.site.register(ImageDetails, ImageDetailsAdmin)
    

图像已成功存储在ProjectDIR/media。HTML返回url: http://127.0.0.1:8000/media/imagename.jpg at img标签。但是页面无法加载图像(每当使用url http://127.0.0.1:8000/media/imagename.jpg时,我将被重定向到索引页)。我使用的是Django 1.10版本

正如所怀疑的,这个问题是关于Django中的url。出现问题是因为我在应用程序urls.py中声明了以下url模式:

     url(r'', views.index, name='index'),

我通过将代码改为:

解决了这个问题
     url(r'^$', views.index, name='index'),
并在项目的主url .py中添加以下代码:
    if settings.DEBUG:
        urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

相关内容

  • 没有找到相关文章

最新更新