繁体   English   中英

Django:上传的图片未显示在模板中

[英]Django: uploaded image is not showing in template

我正在尝试使用Django框架编写一个简单的博客。 我想为每个帖子都准备一张封面图片。

我通过管理网站上传了图片,一切似乎都很好,但是图片未在浏览器中呈现。

这是我的文件:

models.py

(...)
class Post(models.Model):
    author = models.ForeignKey('Author', on_delete=models.CASCADE)
    title = models.CharField(max_length=250)
    slug = models.SlugField(unique=True, blank=True, max_length=250)
    created = models.DateTimeField(auto_now=False, auto_now_add=True)
    modified = models.DateTimeField(auto_now=True, auto_now_add=False)
    image = models.ImageField(upload_to="images/%Y/%m/", blank=True, null=True)
    content = models.TextField()
(...)

django_blog_project \\ urls.py

from django.conf.urls import url, include
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('blog.urls')),
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

博客\\ urls.py

(...)
urlpatterns = [
    url(r'^posts/create/$', PostCreate.as_view(), name="post_create"),
    url(r'^posts/([\w-]+)/$', AuthorPostList.as_view(), name="posts_by_author"),
    url(r'^(?P<slug>[-\w]+)/$', PostDetailView.as_view(), name="post_detail"),
    url(r'^', PostListView.as_view(), name="post_list"),
]

settings.py

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

post_detail.html

{% extends "blog/base.html" %}
{% block content %}
    <h1>{{ post.title }}</h1>
    <img src="{{ post.image.url }}" >
    <p>{{ post.content }}</p>
    <p>Autor: {{ post.author }}</p>
    <p>Opublikowano: {{ post.modified }}</p>
{% endblock %}

ir树

我的目录树

图片解析到的网址

<img src="/media/images/2016/12/fotolia_97812586.jpg">

在模式中添加$ char解决了一个问题。

博客\\ urls.py

(...)
urlpatterns = [
    url(r'^posts/create/$', PostCreate.as_view(), name="post_create"),
    url(r'^posts/([\w-]+)/$', AuthorPostList.as_view(), name="posts_by_author"),
    url(r'^(?P<slug>[-\w]+)/$', PostDetailView.as_view(), name="post_detail"),
    # url(r'^', PostListView.as_view(), name="post_list"), # WRONG! 
    url(r'^$', PostListView.as_view(), name="post_list"),  # CORRECT! 
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM