私はdjangoが初めてで、写真をアップロードしてから表示して遊んでいます。...それらを表示しようとしています。
テンプレートから画像を表示しようとすると、壊れた画像リンク アイコンが表示されます。
私はsqlite3サーバーを使用しています
設定.py
ROOT_DIR = os.path.dirname(os.path.dirname(__file__))
def location(f):
return os.path.join(ROOT_DIR, f)
MEDIA_URL = 'http://127.0.0.1:8000/media/'
MEDIA_ROOT = location('media/')
models.py
class Image(models.Model):
image = models.ImageField(upload_to = 'images/')
ビュー.py
from imageupload.settings import MEDIA_ROOT, MEDIA_URL
def main(request):
imgs = Image.objects.all()
return render_to_response('index.html', {'images': imgs, 'media_root': MEDIA_ROOT, 'media_url': MEDIA_URL})
url.py
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
今、管理者を使用して画像をアップロードしました。そして、それはうまくいくようです、彼らは私が期待する場所に行きます
しかし、それらを表示しようとすると:
template
<!DOCTYPE html>
<html>
<img src="<correct path to project>/media/images/photo_1.JPG" />
{% for img in images %}
<img src="{{ media_root }}{{ img.image.name }}" />
<img src="{{ media_url }}{{ img.image.name }}" />
<img src="{{ img.image.url }}" />
{% endfor %}
</html>
それぞれの壊れたアイコンを取得します。
ブラウザのソースコードは私を示しています:
<!DOCTYPE html>
<html>
<img src="<correct path to project>/media/images/photo_1.JPG" />
<img src="<correct path to project>/media/images/photo_1.JPG" />
<img src="http://127.0.0.1:8000/media/images/photo_1.JPG" />
<img src="http://127.0.0.1:8000/media/images/photo_1.JPG" />
</html>
それは理にかなっています。アップロードされた写真は 1 枚だけです。
ハードリンクの1つをコピーして他のhtmlファイルに入れると...動作します