无法查看在django admin中创建的缩略图

时间:2016-04-08 22:57:31

标签: python django

我正在尝试在Django管理员中创建自己的缩略图,我相信他们正在被正确指向。但是我无法查看缩略图。这就是我所看到的:

enter image description here

当我点击缩略图时,我会被重定向到此网址,而我看到的只是一个空的白页。

http://localhost:8000/media/media/Screen_Shot_2016-04-08_at_12.55.25_PM.png

这是正确的网址,但我在网页中看不到任何内容。

以下是我的代码:

在我的settings.py

所有文件都将转到cherngloong/uploads,而/media/将成为MEDIA_ROOT的公共前端代表

MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
MEDIA_URL = '/media/'

在cherngloong / cherngloong / urls.py中,我附加到列表中以提供静态文件:

urlpatterns = [
    url(r'^admin', include(admin.site.urls)),
    url(r'', TemplateView.as_view(template_name="index.html"), name="index"),
    url(r'^api/', include('api.urls'))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

我的cherngloong / api / urls.py:

urlpatterns = [
    url(r'ig$', most_recent)
]

cherngloon / API / models.py:

class Media(models.Model):
    ...
    ...
    file = models.FileField(upload_to="media/", default=None)

cherngloong / API / admin.py:

class MediaAdmin(admin.ModelAdmin):
    search_fields = ["name", "file"]
    list_display = ("name", "media_type", "url", "album", "display", "thumbnail")
    def display(self, media_obj):
        return '<a href="%s">%s</a>' % (media_obj.file.url, media_obj.file.name)

    def thumbnail(self, media_obj):
        location = media_obj.file.url
        thumbnail_html = "<a href=\"{0}\"><img border=\"0\" alt=\"\" src=\"{1}\" height=\"80\" /></a>".format(location, location)
        return thumbnail_html

    thumbnail.allow_tags = True
    display.allow_tags = True

项目结构:

enter image description here

1 个答案:

答案 0 :(得分:2)

我看不到您所拥有的代码有任何不一致之处。我刚刚在GitHub上创建了一个具有相同结构的项目,以及你在这里发布的代码,一切都像魅力一样,你可以自己测试一下,看看这里的代码:https://github.com/vladir/cherngloong。我使用的是Django的最新版本,我知道您使用的是Django 1.9以下的版本,因为您仍在使用allow_tags,但即便如此,您的代码对我来说也不错。也许我的代码可以帮助您找到正在发生的事情。

我发现它为什么会发生。删除这一行:

url(r'', TemplateView.as_view(template_name="index.html"), name="index"),

来自您的cherngloong/cherngloong/urls.py,它会呈现正常。

似乎此网址过于开放,并且会干扰缩略图网址。 它可能适合你: url(r'^$', TemplateView.as_view(template_name="index.html"), name="index"),

我在repo上更新了我的代码,以便您可以测试它是否正常工作。