分页不接受 dict 作为数据 - 不可哈希类型

2023-12-12

我正在尝试使用 Django 分页分页文档。但我收到此错误:

TypeError at /
unhashable type

这基本上是因为我使用字典作为对象而不是查询集。 我想知道是否有办法将我的字典变成可哈希对象。

这是我在模板中的字典:

{% for key, values in prodmatrix.items %}                                                                                                     <li class="span3">
<div class="product-box">
<span class="sale_tag"></span>
<p><a href="{% url 'product_detail' slug=values.3.0 %}"><img src="{{ STATIC_URL }}{{values.1.0}}" alt="" /></a></p>
    <a href="{% url 'product_detail' slug=values.3.0 %}" class="title"><h4>{{ values.0.0 }}</h4></a><br/>
    <p class="category"><a href="{% url 'product_detail' slug=values.3.0 %}">{{values.2.}}    {{values.2.1}}   {{values.2.2}}</a></p>
</div>
</li>
{% endfor %}

这是我的观点:

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})

Use tuple反而dict, 像这样:

# convert `dict` to `tuple`:
prodmatrix = tuple(prodmatrix)
paginator = Paginator(prodmatrix, 2)
# or this
paginator = Paginator(prodmatrix.items(), 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})

在您的模板中,您需要通过元组索引调用属性和方法(键= 0,值= 1)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分页不接受 dict 作为数据 - 不可哈希类型 的相关文章

  • 导入错误:没有名为 _ssl 的模块

    带 Python 2 7 的 Ubuntu Maverick 我不知道如何解决以下导入错误 gt gt gt import ssl Traceback most recent call last File
  • Flask 和 uWSGI - 无法加载应用程序 0 (mountpoint='')(找不到可调用或导入错误)

    当我尝试使用 uWSGI 启动 Flask 时 出现以下错误 我是这样开始的 gt cd gt root localhost uwsgi socket 127 0 0 1 6000 file path to folder run py ca
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 将文件夹和文件结构从 django 1.3 迁移到 django 1.4 的最佳方法是什么?

    我有一个使用 django1 3 创建的小项目 我想将其迁移到 django1 4 但由于文件结构发生了一些变化 最好的迁移方法是什么 Read https docs djangoproject com en dev releases 1
  • 如何从没有结尾的管道中读取 python 中的 stdin

    当管道来自 打开 时 不知道正确的名称 我无法从 python 中的标准输入或管道读取数据 文件 我有作为例子管道测试 py import sys import time k 0 try for line in sys stdin k k
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例

随机推荐

  • 使用列计数时避免将元素拆分为两列

    我正在尝试使用多列创建一组 但它将一个 Link4 分成两列 只需将鼠标悬停在 Link4 上即可 它的一些部分被分成第二列 有没有什么可能的方法来避免这种情况 div Nav height 100 important div Nav a
  • PROLOG 中的递归?

    鉴于以下 Prolog 事实 f a b f b c f c d f d e f e 我需要创建一个查询xyz a Y 这样我得到Y e d c b 因为 a 依赖于 b b 又依赖于 c 等等 我当前的查询是 xyz X Y f X P
  • 如何在 Java 对象列表中搜索

    我有一个对象列表 并且该列表非常大 对象是 class Sample String value1 String value2 String value3 String value4 String value5 现在我必须在列表中搜索对象的特
  • 动画(可能切换类)不起作用

    因此 我正在制作一个网站 其中有几个 div 当用户单击特定按钮或导航项时 这些 div 应该从右侧 左侧或顶部滑动 然而 这些都不起作用 当我单击应该使它们滑动的按钮时 所有 div 都不会滑动 我使用纯 JavaScript 来执行这些
  • BULK INSERT SQL SERVER 的乐趣 - 指定代码页的类型不匹配或无效字符

    我正在插入如下所示的数据 AA00000111 PSNH OT J SMITH 03 01 2011 10 11 1957 42 Male Hartford NH Lorazepam Benzodiazepines C AA00000151
  • JAR 文件中带有图像的 Java 工具提示

    我正在使用 JFreeChart 通过实现来自定义图表的工具提示XYToolTipGenerator界面 作为generateToolTip 方法应该返回一个字符串 这是我在工具提示中显示图像所做的操作 Override public St
  • 如何查看我正在使用哪个版本的 Swift?

    我刚刚在 Xcode 中创建了一个新的 Swift 项目 我想知道它使用的是哪个版本的 Swift 如何在 Xcode 或终端中查看我的项目中使用的 Swift 版本 我所做的是在终端中说 xcrun swift version Xcode
  • 如何使用Oracle全局临时表?

    我正在尝试使用 Oracle 全局临时表 而不在数据库中物理创建表 以下代码不起作用 有人可以解释一下使用全局临时表的正确方法吗 declare global temporary table my temp table column1 nu
  • 从时间跨度(例如“15 分钟”或“2 秒”)到“00:15:00”或“00:00:02”

    我正在搜索 R 函数的帮助 该函数可以将时间跨度 例如 15 分钟 或 1 小时 或 6 秒 或 1 天 转换为日期时间对象 如 00 15 00 或 01 00 00 或 00 00 06 或 1960 01 02 00 00 00 不确
  • 如何使用Java向mysql插入数据

    我正在尝试使用 Java 将数据插入 mysql 数据库 我正在使用以下代码从数据库中获取数据 并且工作正常 import java sql Connection import java sql DriverManager import j
  • 将双精度型格式化为小数点后两位

    我一直试图将打印出来的答案保留到小数点后两位 所有涉及的数学都必须保持两位小数的格式 我已经尝试了一些事情 但我不确定要改变什么才能使这项工作正常进行 double pdt1 239 99 double pdt1Total double p
  • 使用 Python subprocess.call() 启动 ncurses 进程

    我正在尝试致电 ct ng http crosstool ng org 来自 SCons SConstruct 脚本 所以基本上来自 Python 使用以下方法 ret subprocess call mnt build pw build
  • 文件处理 - 再次从头开始读取[重复]

    这个问题在这里已经有答案了 我需要创建一个对象数组来保存文件中的记录 我不知道数组的大小 为此 我必须首先找到文件中的行数 使用行数可以确定数组的大小 现在我需要从头开始再次读取文件 以将文件中的记录存储在数组对象中 这就是我正在挣扎的地方
  • 如何获取php中具有特定文件夹名称的所有子目录?

    我发现我可以在 php 中使用以下代码获取该文件夹的所有子目录 address new RecursiveIteratorIterator new RecursiveDirectoryIterator root RecursiveDirec
  • 如何避免依赖注入构造函数的疯狂?

    我发现我的构造函数开始看起来像这样 public MyClass Container con SomeClass1 obj1 SomeClass2 obj2 随着参数列表的不断增加 既然 Container 是我的依赖注入容器 为什么我不能
  • 我如何使用 AngularJS 和serializeJSON cfquery

    我想看看 AngularJS 带有 cf 后端 我有以下代码 它提取一个名为 getIndex 的常规 cfquery 该查询每行提取五行列 firstName lastName var theQuery
  • 如何存储 Android 对话框中的编辑文本数据?

    我已经设置了一个包含多个编辑文本的警报对话框 但我不确定如何存储在警报对话框中输入的值 通常我可以这样做 final EditText input new EditText this alert setView input Editable
  • 如何在Java中互相使用两个类的方法?

    我环顾四周 只找到了一个答案 至少对我来说还不够清楚 我正在使用 GUI 构建一个非常基本的聊天应用程序 并将 GUI 与连接部分分开 现在我需要从服务器类中的 GUI 调用一种方法 反之亦然 但我不太明白该怎么做 即使是 这个 部分代码如
  • Pyinstaller 和 PyQt5 macOS Mojave 兼容性问题

    我的应用程序是使用 Pyinstaller 创建的 在我从 High Sierra 升级到 Mojave 之前一直运行良好 为了演示这个问题 我创建了一个简单的应用程序 主窗口只有一个按钮 当您按下按钮时 其文本应更改为 请稍候 10 秒钟
  • 分页不接受 dict 作为数据 - 不可哈希类型

    我正在尝试使用 Django 分页分页文档 但我收到此错误 TypeError at unhashable type 这基本上是因为我使用字典作为对象而不是查询集 我想知道是否有办法将我的字典变成可哈希对象 这是我在模板中的字典 for k