我正在尝试在 Django 管理中创建自己的缩略图,并且我相信它们已被正确指向。但是我无法查看缩略图。这是我看到的:
当我单击缩略图时,我会被重定向到此 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
项目结构:
最佳答案
我看不出您的代码有任何不一致之处。我刚刚在 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/