1

アーティスト、曲、アルバムに関する曲情報の基本的なデータベースを構築しようとしています。特定のアルバムのページで、特定のアルバムのアルバム アートを表示しようとしています。Django Admin 内の組み込みの画像アップロード機能を使用して画像をアップロードしています。画像の URL は mysql 内に正しく保存されていますが (確認しました)、サイトに画像が表示されません。私がオンラインで読んだことによると、問題のある可能性のある領域は URL ファイル (メディアに対応するために変更していません) または MEDIA_URL にありますが、Django が概説したように指示に従いました。以下に、関連すると思われるコードをリンクしています。助けてくれてありがとう!

ビュー.py

from django.shortcuts import render_to_response
from django.template import RequestContext
from Radio.models import Song, Artist, Album

def SongsAll(request):
    songs = Song.objects.all().order_by('songName')
    context = {'songs' : songs}
    return render_to_response('songsall.html', context, context_instance = RequestContext(request))

def SpecificSong(request, songname):
    song = Song.objects.get(songName = songname)
    context = {'song':song}
    return render_to_response('specificsong.html',context, context_instance=RequestContext(request))

def SpecificArtist(request, artistname):
    singer = Artist.objects.get(artistName = artistname)
    songs = Song.objects.filter(artist = singer)
    context = {'songs':songs}
    return render_to_response('specificartist.html',context, context_instance=RequestContext(request))

def SpecificAlbum(request, albumname):
    album = Album.objects.get(albumName = albumname)
    songs = Song.objects.filter(album = album)
    context = {'songs':songs}
    return render_to_response('specificalbum.html', context, context_instance=RequestContext(request))

settings.py (関連部分のみ)

MEDIA_ROOT = '/home/kyle/Downloads/Django-1.5.1/radioSite/media/'

MEDIA_URL = 'http://127.0.0.1:8000/media/'

models.py

from django.db import models

class Artist(models.Model):
    artistName = models.CharField(max_length = 30)
    artistInfo = models.TextField()

    def __unicode__(self):
         return self.artistName

class Album(models.Model):
    albumName = models.CharField(max_length = 30)
    artist = models.ForeignKey('Artist')
    date = models.DateTimeField('Release Date')
    albumInfo = models.TextField()
    albumArt = models.ImageField(upload_to="images/albumart/")

    def __unicode__(self):
        return self.albumName

class Song(models.Model):
    songName = models.CharField(max_length = 30)
    artist = models.ForeignKey('Artist')
    album = models.ForeignKey('Album')

    def __unicode__(self):
        return self.songName

base.html

<html>
<head>
    <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/Radio.css"/>
     {% block extended %}{% endblock %}
</head>
<body>
<div id="pageContainer">
    {% block content %}
    {% endblock %}
</div>
</body>
</html>

特定のアルバム.html

{% extends "base.html" %}
{% block content %}
   <div id="singlealbum">
       <p><img src="{{ songs.0.album.albumart.url }}"/>Name: {{ songs.0.album }}</p>
       <p>Artist:{{ songs.0.artist }}</a></p>
       <p>Song list:</p>
            {% for song in songs %}
               <p><a href="/songs/{{ song }}/">{{ song }}</a></p>
    {% endfor %}
   </div>
 {% endblock %}
4

1 に答える 1

1

あなたの画像は、Web サーバーが提供することを期待している場所に実際にアップロードされていますか?

あなたのMEDIA_URL設定から、Djangoサーバーに画像を提供させようとしていると推測しています。開発中にこれを行う方法については、ドキュメントを確認できます。または、Django を学習している場合は、これを真剣に実行しようとしないでください。専用の Web サーバーを使用すると、はるかに優れたサービスが提供されます。アパッチなど。

于 2013-06-11T18:12:45.950 に答える