Django Admin:确定正确的图片上传路径
Django Admin: Determine correct image upload path
我是 Django 的新手,目前在 Django Admin 中显示上传的图像时遇到问题。我在 Whosebug 中关注了许多张贴的问答,但其中的一些对我的问题有效。我希望这里任何活跃的编码忍者都可以帮助我解决这个问题。下面是问题的详细视图:
我在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 returns url: http://127.0.0.1:8000/media/imagename.jpg at img tag. But the page fails to load the image (I will be redirected to index page whenever when using the url http://127.0.0.1:8000/media/imagename.jpg)。我正在使用 Django 版本 1.10
正如所怀疑的那样,这个问题与 Django 中的 URL 有关。出现问题是因为我在应用程序中声明了以下 urlpattern urls.py:
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)
我是 Django 的新手,目前在 Django Admin 中显示上传的图像时遇到问题。我在 Whosebug 中关注了许多张贴的问答,但其中的一些对我的问题有效。我希望这里任何活跃的编码忍者都可以帮助我解决这个问题。下面是问题的详细视图:
我在settings.py
中定义了MEDIA_ROOT和MEDIA_URLBASE_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 returns url: http://127.0.0.1:8000/media/imagename.jpg at img tag. But the page fails to load the image (I will be redirected to index page whenever when using the url http://127.0.0.1:8000/media/imagename.jpg)。我正在使用 Django 版本 1.10
正如所怀疑的那样,这个问题与 Django 中的 URL 有关。出现问题是因为我在应用程序中声明了以下 urlpattern urls.py:
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)