0

对不起,如果我的问题听起来很愚蠢,因为我是 Django 新手。

我在 Django 中有这样的视图:

def myview(request):

list = Ref.objects.all()

return render_to_response('annonces.html', {'list': list} ,RequestContext(request)) 

Ref 是一个小型 sqlite 数据库,我在其中存储从网络上抓取的内容。

在我的 django 模板中,我想在包含链接(图像)列表的列表对象(hurl)的字段上循环,以便在我的网页上显示它。我试过这个:

   {% for value in list %}
       {% for link in value.hurl %}
           <li><img src="{{ link }}"></li>
       {% endfor %}
   {% endfor %}

不幸的是,它不起作用。对象列表将所有内容转换为字符串,因此我的模板中的循环为字段中的每个字符创建一行。

你知道我怎样才能让我的对象将 hurl 呈现为列表而不是字符串吗?

这是 value.hurl 的示例:

u"['http://3.visuels.poliris.com/thumbnails/3/3/6/5/3365ddc7-3f27.jpg', 'http://1.visuels.poliris.com/thumbnails/1/2/b/6/12b6c286-372f.jpg', 'http://b.visuels.poliris.com/thumbnails/b/4/f/3/b4f32a1c-3159.jpg']"

这是模型。不确定 URLField 是否适用于投掷。

class Ref(models.Model):

ref = models.IntegerField(max_length=10, primary_key='True')
title = models.CharField(max_length=500)
hurl = models.URLField()
url = models.URLField()
prix = models.CharField(max_length=500)

谢谢吉尔斯

4

1 回答 1

1

您应该更改对象模型并将多个值存储hurl为另一个对象。

该对象应该具有ForeignKey您的Ref 对象:

class Ref(models.Model):
    # snip

class Link(models.Model):
    url = models.CharField(...)
    ref = models.ForeignKey("Ref")

然后,在您的模板中,执行以下操作:

{% for value in list %}
    {% for link in value.link_set %}
        <li><img src="{{ link }}"></li>
    {% endfor %}
{% endfor %}

在您看来,为了获得更好的性能,请执行以下操作:

list = Ref.objects.prefetch_related("link_set").all()
于 2013-09-11T21:23:22.503 回答