我正在构建我的新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')
这是Admin文件:
class PhotoAdmin(admin.ModelAdmin):
fields = ["image",]
list_display = ("image",)
admin.site.register(Photo, PhotoAdmin)
答案 0 :(得分:3)
您似乎忘记提供媒体文件,只需按照this
要在 admin 中显示图片预览,您可以执行以下操作:
将此添加到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