我是新的Django和我一直在關注Django的教程「djangogirl」但我想添加圖片,所以我做了一個model.py
這樣的:上傳圖片並使用Django
class Post(models.Model):
author = models.ForeignKey('auth.User')
image = models.ImageField()
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
這是我view.py
:
def posts(request):
posts = Post.objects.order_by('published_date')
return render(request, 'my_blog/posts.html', {'posts': posts})
而且my_blog.html
:
{% extends 'my_blog/base.html' %}
{% load staticfiles %}
{% block content %}
<link rel="stylesheet" href="{% static 'style/css/posts.css' %}">
<div id="postsContainer">
<div id="posts">
{% for post in posts %}
<div>
<h3 class="date">Published the: {{ post.published_date }}</h3>
<h1><a href="">{{ post.title }}</a></h1>
<img src="{{ post.image.url }}"/>
<p>{{ post.text|linebreaks }}</p>
</div>
<div id="button">
<button type="button" class="btn btn-primary">Read more</button>
</div>
<div class="top-divider"></div>
{% endfor %}
</div>
</div>
{% endblock %}
我通過Django管理頁面插入圖像。
的問題是,在我的HTML返回的URL是很奇怪的,如:./images_SseHlrA.png
,並沒有明顯的正確顯示的畫面。我該如何解決它?
顯然圖片是在根級別「放養」(比同級別的文件manage.py
這個問題是爲什麼呢?我能怎樣改變的,什麼是這樣做的最好方法是什麼?
好,謝謝,現在我有一個正常的URL「/上傳/插圖/ images.png」。但仍然無法找到圖片。 「上傳」文件夾是在根目錄下創建的,並且圖像存儲在目錄中,我應該在模板中導入某些內容?就像我爲靜態文件所做的那樣:{%load staticfiles%} – mel
如果您在呈現的頁面上查看源代碼,那麼爲圖像指定了哪個URL?現在檢查Django文檔中的MEDIA_URL https://docs.djangoproject.com/en/1.9/ref/settings/#media-url - 您的設置和工作是否正確? MEDIA_URL和MEDIA_ROOT用於確定上傳媒體的位置。 – shacker