【问题标题】:Django Admin: Determine correct image upload pathDjango Admin:确定正确的图像上传路径
【发布时间】:2017-01-07 11:54:46
【问题描述】:

我是 Django 新手,目前在 Django Admin 中显示上传的图像时遇到问题。我在stackoverflow中关注了许多发布的Q和A,但其中一些在我的问题中起作用。我希望这里任何活跃的编码忍者都可以帮助我解决这个问题。这是问题的详细视图:

  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. 在我的应用程序 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. 在我的 admin.py 中:

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

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

【问题讨论】:

  • 检查 MEDIA_URL - 你已经分配了两次。我认为您的意思是在第一次出现时使用 MEDIA_ROOT。
  • 奥普斯。这实际上是原始代码中的媒体根。在这里完成编辑。

标签: python django django-admin django-urls django-1.10


【解决方案1】:

正如怀疑的那样,这个问题与 Django 中的 URL 有关。出现问题是因为我在应用程序 urls.py 中声明了以下 urlpattern:

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

我通过将代码更改为:

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

并在项目的主 urls.py 中添加以下代码:

    if settings.DEBUG:
        urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    • 2014-08-29
    • 2017-07-30
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    相关资源
    最近更新 更多