我正在扩展我的新Django应用。还处于起步阶段。所以现在我只专注于数据模型的设计。表单,视图,模板,前端AJAX等都将稍后出现。我正在使用Django Admin界面创建和查看虚拟模型对象。
我有一个具有ImageField属性的模型。使用管理界面,我可以将一个名为taco.jpg的文件上传到该模型。我可以进入文件系统,查看该文件已成功上传。它的文件路径也显示在管理界面中:
但是,当我单击该链接时,它会产生错误,因为在urls.py中没有指定到该文件的路由:
如何制作文件,以便每当我上传文件时,都会将其路由自动添加到urls.py中?
以及如何使照片的缩略图出现在管理界面的明细视图中(如果单击该缩略图,应显示完整尺寸的图像)
这是我的urls.py文件:
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
)
这是我的数据模型:
class Photo(models.Model):
image = models.ImageField(null=True, upload_to='documents/%Y/%m/%d')
这是管理文件:
class PhotoAdmin(admin.ModelAdmin):
fields = ["image",]
list_display = ("image",)
admin.site.register(Photo, PhotoAdmin)
最佳答案
似乎您忘记提供媒体文件了,只需遵循this
要在管理员中显示图像预览,您可以执行以下操作:
将此添加到PhotoAdmin
:
def image_img(self):
if self.image:
return u'<img src="%s" />' % self.image.url
else:
return '(No image found)'
image_img.short_description = 'Thumb'
image_img.allow_tags = True
所以
PhotoAdmin
应该看起来像这样:class PhotoAdmin(admin.ModelAdmin):
fields = ["image",]
list_display = ("image","image_img")
def image_img(self):
if self.image:
return u'<img src="%s" />' % self.image.url
else:
return '(No image found)'
image_img.short_description = 'Thumb'
image_img.allow_tags = True
关于python - 如何使用Django管理界面正确显示上传的文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24720045/