2016-11-28 115 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}}">在你的模板