我尝试使用Django分页Pagination Docs。但我收到了这个错误:
TypeError at /
unhashable type
这基本上是因为我使用的是字典而不是查询集。 我想知道是否有办法把我的字典变成散列对象。在
这是我的口述模板:
^{pr2}$这是我的观点:
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
paginator = Paginator(prodmatrix, 2)
page = request.GET.get('page')
try:
prodmatrix2 = paginator.page(page)
except PageNotAnInteger:
prodmatrix2 = paginator.page(1)
except EmptyPage:
prodmatrix2 = paginator.page(paginator.num_page)
return render(request, 'home.html',{'prodmatrix2':prodmatrix})
使用
tuple
代替dict
,如下所示:在模板中,需要通过元组的索引调用attrs和方法(key=0,value=1)
相关问题 更多 >
编程相关推荐