2016-12-28 11 views
0

Ich versuche, einen einfachen Blog mit einem Django-Framework zu schreiben. Ich möchte ein Titelbild für jeden Beitrag haben.Django: Das hochgeladene Bild wird nicht in der Vorlage angezeigt

Ich habe ein Bild über Admin-Site hochgeladen und alles scheint in Ordnung, aber Bild wird nicht in einem Browser gerendert.

Hier ist meine Dateien:

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) 

Blog \ 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 %} 

Dir tree

My directory tree

URL des Bildes Lösung zu

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

Wenn Sie die Seite prüfen, was ist die URL des Bildes zu lösen? –

+0

@WesDoyle URL ist '' – Konrados

Antwort

0

$ char in Muster Hinzufügen ein Problem gelöst.

Blog \ 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! 
] 
Verwandte Themen