我正在扩展我的新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/

10-14 11:57
查看更多