2015-09-15 6 views
1

Я новичок в Python и Django. Я не знаю, как отображать изображения с моделей.Показать изображение с моделей

Вот мой код:

models.py

class Blog(models.Model): 
    title = models.CharField(max_length = 100) 
    content = models.TextField(max_length = 5000) 
    publication_date = models.DateField(blank=True, null=True) 
    image = models.ImageField(upload_to='photo',verbose_name='My Photo') 
    author = models.CharField(max_length=50) 
    def __str__(self): 
     return self.title 

views.py

def index(request): 
    songs = models.Blog.objects.all() 
    context = Context({ 
     'songs_list': songs 
     }) 
    return render(request, 'music.html', context) 

music.html

{% if songs_list %} 
    <ul> 
    {% for songs in songs_list %} 

     <li> 
      <span style= "color:green"> {{songs.title}}</span> 
      <span style= "color:red"> - {{songs.author}}</span> 
      <img src="{{ songs.image }}" />  
     </li> 

    {% endfor %} 
    </ul> 
{% else %} 
    <p>No song is made. </p> 
{% endif %} 

urls.py

urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^$', 'blog.views.index', name='index'), 
] 

Когда я загрузить страницу, она не отображает изображения, пожалуйста, проверьте ссылку, чтобы увидеть картину: http://postimg.org/image/i1c8ju9e5/

ответ

1

Вы можете использовать атрибут ImageField.url, чтобы отобразить изображение в шаблоне.

Изменить {{songs.image}}{{songs.image.url}} в свой шаблон и это должно отображать изображение в вашем шаблоне.

{% if songs_list %} 
    <ul> 
    {% for songs in songs_list %} 

     <li> 
      <span style= "color:green"> {{songs.title}}</span> 
      <span style= "color:red"> - {{songs.author}}</span> 
      <img src="{{ songs.image.url }}" />  
     </li> 

    {% endfor %} 
    </ul> 
{% else %} 
    <p>No song is made. </p> 
{% endif %} 
+0

все еще не работает. От терминала: [15/Sep/2015 18:05:22] «GET/HTTP/1.1» 200 921 [15/Sep/2015 18:05:23] «GET /photo/AllByMyself.jpg HTTP/1.1" 500 83073 - Разбитая труба от (127.0.0.1, 43547) [15/Sep/2015 18:05:23] "GET /photo/HotelCalifornia.jpeg HTTP/1.1" 500 83143 - Разбитая труба из (' 127.0.0.1 ', 43548) [15/Sep/2015 18:05:23] "GET /photo/Hello.jpeg HTTP/1.1" 500 83003 - Разбитая труба из (' 127.0.0.1 ', 43550) [ 15/Sep/2015 18:05:23] «GET /photo/TakeMeToYourHeart.jpeg HTTP/1.1" 500 83163 –

+0

Проверьте правильность пути к изображениям, и вы правильно настроили настройки. Также проверьте правильность определения значений «MEDIA_URL» и «MEDIA_ROOT». –

+0

благодарим за помощь, :) –

Смежные вопросы