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

标签 python django

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

enter image description here

当我单击缩略图时,我会被重定向到此 URL,我看到的只是一个空白页面。

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

这是正确的 URL,但我在页面中没有看到任何内容。

这是我的代码:

在我的settings.py中

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

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

在 chernloong/chernloong/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

最佳答案

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

我找到了为什么会发生这种情况。删除这一行:

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

来自您的chernloong/chernloong/urls.py,它将渲染正常。

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

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

关于python - 无法查看在 django admin 中创建的缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36510620/

相关文章:

Django rest_framework 自定义错误信息

python - 如何更改 graphene django 中的中继连接限制

python - 检查 PyObject 是否为 None

Python/Django - 初始/默认管理页面

Python:字典中的元素顺序

python - 基于模型在 Django 中自动生成页脚的正确方法

django - Django 测试运行程序和测试客户端登录与身份验证后端的问题

python - Flask 测试客户端使用方法获取错误的 View 函数

python - CVXPY 中的逐元素乘法

python - 在没有内存泄漏的情况下在 Python 中公开 STL 结构