gpt4 book ai didi

python - 遍历模板内的元组返回空值

转载 作者:太空宇宙 更新时间:2023-11-04 10:38:59 31 4
gpt4 key购买 nike

我正在尝试将元组解析为模板,但在循环遍历模板内的元组时遇到问题。我只是得到空值。我想这样做是为了使用 django 分页,这需要一个可以循环的对象。

这是我创建元组的 View

def home(request):
if request.user.is_authenticated():
print "login"
user = request.user
prods = Product.objects.all()

i = 0
print 'numero de produtos ' + str(len(prods))
prodmatrix = {}
for prod in prods:
# 0 1 2 3
prodmatrix[str(i)] = [[prod.name], [prod.image], [], [prod.slug]]
reviews = Review.objects.filter(product=prod.id) # ^ this is for tags
print str(len(reviews))
if len(reviews) != 0:
for review in reviews:
rev_alltags = review.tag.all()
for tags in rev_alltags[:3]: #
print tags.name
prodmatrix[str(i)][2].append(tags.name) # append only tags
print str(i)
i = i + 1
#prodmatrix = tuple(prodmatrix)
paginator = Paginator(prodmatrix.items(), 2)
page = request.GET.get('page')
try:
prodmatrix = paginator.page(page)
except PageNotAnInteger:
prodmatrix = paginator.page(1)
except EmptyPage:
prodmatrix = paginator.page(paginator.num_page)
return render(request, 'home.html',{'prodmatrix':prodmatrix})

这就是我尝试循环思考模板中的元组的方式:

 {% for keys, values in prodmatrix %}
<li class="span3">
<div class="product-box">
{{ values.0.0 }} {{ values.0.3 }} {{ values.1.1 }} {{ values.1.2 }}
</div>
</li>
{% endfor %}

最佳答案

不要费心将字典转换为元组。在 dict 上调用 items 方法以获取可以以这种方式迭代的内容:

{% for keys, values in prodmatrix.items %}
<li class="span3">
<div class="product-box">
{{ values.0.0 }} {{ values.0.3 }} {{ values.1.1 }} {{ values.1.2 }}
</div>
</li>
{% endfor %}

顺便说一句,做这样的事情可能会更简单:

class Product(models.Model):
# ...
@property
def tags(self):
return self.review_set.values_list('tag_set__name', flat=True).distinct()


def home(request):
if request.user.is_authenticated():
products = Product.objects.prefetch_related('review_set__tag_set')
return render(request, 'home.html', {
'products': products,
})

然后你的模板看起来像这样:

{% for product in products %}
<li class="span3">
<img src="{{ product.image.image.url }}"/>
<div class="product-box">
{{ product.name }} -
{{ product.tags|join:', ' }} -
{{ product.slug }}
</div>
</li>
{% endfor %}

关于python - 遍历模板内的元组返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21887196/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com