Ich habe einen einfachen Django Blog erstellt, und ich habe Probleme, Bilder in meinen Posts konsistent zu zeigen. Insbesondere erscheinen meine Bilder in der "Listen" -Ansicht (der Homepage für die Site), aber nicht in der "Detail" -Ansicht (beim Betrachten eines einzelnen Posts). Die Website ist hier, wenn Sie die Ausgabe sehen wollen Live: endicott.coBildfehler in Django Blog
Der Code für die Listenansicht unten:
{% extends "blog/base.html" %}
{% block title %}endicott.co{% endblock %}
{% block content %}
<div class="page-header">
<h1>endicott.co</h1>
<p>Perspectives on society, data, and economics</p>
</div>
{% for post in posts %}
<h2>
<a href="{{ post.get_absolute_url }}">
{{ post.title }}
</a>
</h2>
<p class="date">
Published {{ post.publish }} by {{ post.author }}
</p>
<img src="{{ post.image.url }}" alt="img">
{{ post.body|linebreaks }}
{% endfor %}
{% include "pagination.html" with page=page_obj %}
{% endblock %}
Der Code für die Detailansicht ist unten aufgeführt:
{% extends "blog/base.html" %}
{% block title %}{{ post.title }}{% endblock %}
{% block content %}
<h1>{{ post.title }}</h1>
<img src="{{ post.image.url }}" alt="img">
<p class="date">
Published {{ post.publish }} by {{ post.author }}
</p>
{{ post.body|linebreaks }}
{% endblock %}
Irgendwelche Gedanken darüber, warum Django das Bild in der Liste korrekt zeigt, aber nicht die Detailansicht? Lassen Sie mich wissen, ob ich zusätzlichen Code für mehr Hintergrund posten sollte.
Die Dateistruktur ist wie folgt:
blog/
-__pycache__/
-migrations/
-templates/
--blog/
---post/
----detail.html
----list.html
---base.html
--pagination.html
-__init__.py
-admin.py
-apps.py
-models.py
-tests.py
-urls.py
-view.py
media/
-img/
--[where images are stored]
mysite/
-__pycache__/
-static/
-__init__.py
-settings.py
-urls.py
-wsgi.py
Mein Blog urls.py Datei unter:
from django.conf.urls import url
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# post views
#url(r'^$', views.post_list, name='post_list'),
url(r'^$', views.PostListView.as_view(), name='post_list'),
url(r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/'\
r'(?P<post>[-\w]+)/$',
views.post_detail,
name='post_detail'),
]
if settings.DEBUG:
urlpatterns = urlpatterns + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Die mysite urls.py Datei unter:
from django.conf.urls import include, url
from django.contrib import admin
##### adds
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include('blog.urls',
namespace='blog',
app_name='blog')),
]
if settings.DEBUG:
urlpatterns = urlpatterns + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Das Img-Tag ist ''. Auf der ersten Seite versucht es, es von http: // http: //www.endicott.co/media/media/img/SSI_Per_Capita.png zu laden, während es in der Detailansicht versucht, es von "http: //www.endicott.co/2016/05/26/social-security-spending/media/media/img/SSI_Per_Capita.png – saq7
Was meinst du mit "Routen"? – AME
Ich nahm die Routen aus dem Kommentar heraus, weil ich nicht sicher bin, ob das das Problem ist. Routen für Django sind jedoch die Datei urls.py. https://docs.djangoproject.com/de/1.9/topics/http/urls/ – saq7