2016-11-28 160 views
0

Hı,我在我的django代碼中存儲了一個模型,用於存儲圖像的url,但我該如何編寫一個視圖,將它們顯示爲列表中的圖像?Django將url轉換爲圖像/視圖

class Blog(models.Model): 
    photo = models.CharField(max_length=200, unique=True) 
    story = models.TextField(unique=True) 
    pub_date = models.DateTimeField('date published', default=datetime.datetime.now) 
+0

有許多方式,但你可以提供一些關於圖像存儲位置的上下文。如果它們託管在您的域名上,或者它們是外部圖像。 –

+0

查看我的答案,我只是更新了 –

+0

@elvie你還應該考慮對照片使用[URLField](https://docs.djangoproject.com/en/1.10/ref/models/fields/#urlfield) '領域。 –

回答

1

如果你想擁有的對象Blog的列表,那麼您可以在幾種情況下做到這一點。第一個是通用視圖ListView

from django.views.generic.list import ListView 
from yourapp.models import Blog 

class BlogListView(ListView): 
    model = Blog 

在這種情況下,您的網址就會看起來像這樣:

from django.conf.urls import url 
from yourapp.views import BlogListView 
urlpatterns = [ 
    url(r'^$', BlogListView.as_view(), name='blog-list'), 
] 

和模板:

{% blog in object_list %} 
    <img src="{{blog.photo}}"> 
{% endfor %} 

這裏是it

鏈接

另一種方式是創建請求:

from django.shortcuts import render 
from yourapp.models import blog 
def blogListView(request): 
    blog_list = Blog.objects.all() 
    return request(render, 'path/to/your/template.html', {'blog_list':blog_list}) 

在這種情況下,您的網址看起來就像這樣:

url(r'^$', views.blogListView, name='blog-list'), 

您的模板:

{% for blog in blog_list%} 
    <img src="{{blog.photo}}"> 
{% endfor %} 

所以,你只需要添加<img src="{{blog.photo}}">在你的模板