我是Django的新手,我目前在Django Admin中显示上传的图像时遇到问题。我已经在stackoverflow中跟踪了许多发布的Q和A,但是在我的问题中有效。我希望这里编码忍者的任何活跃可以帮助我解决这个问题。以下是问题的详细视图:
我在 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/"
这是我在 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'
在我的应用 urls.py :
中urlpatterns = [
url(r'^inputImage', views.inputImage, name='inputImage'),
url(r'', views.index),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
在我的admin.py中:
class ImageDetailsAdmin(admin.ModelAdmin):
fields = ["image"] #for file upload
list_display = ("image_img",)
admin.site.register(ImageDetails, ImageDetailsAdmin)
图像已成功存储在 ProjectDIR / media 中。 HTML会在img标记处返回网址:http://127.0.0.1:8000/media/imagename.jpg。但页面无法加载图像(每当使用URL http://127.0.0.1:8000/media/imagename.jpg时,我将被重定向到索引页)。我正在使用Django版本1.10
答案 0 :(得分:0)
正如所怀疑的,这个问题与Django中的URL有关。出现问题的原因是我在app 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)