unable to get repr for <class ‘django.db.models.query.QuerySet

在使用Django查询特定category产品时遇到错误:Unable to get repr for <class 'django.db.models.query.QuerySet'>。问题源于数据库字段default_image_url与model中定义的default_image不匹配。通过修改model.py将default_image_url字段改为default_image并进行迁移,但出现OperationalError。解决方案是注释掉migrations文件中涉及该字段的更改,手动在MySQL中调整字段,然后重新迁移,成功获取查询集数据。学习Django时应注意文档学习和理解底层原理。
摘要由CSDN通过智能技术生成

用django做一个查询页面,在查询指定category的产品时候,

skus = category.sku_set.filter(is_launched=True).order_by(sort_field)

没查到结果:

skus: Unable to get repr for <class 'django.db.models.query.QuerySet'>

检查了下MySQL数据库是有数据的,代码也是正确的,网络也正常。

解决思路:

根据错误提示,模型类没有响应,那么就是数据库的数据无法通过模型类展现出来,MySQL的数据类型或格式与model应该是不匹配。

MySQL里面的数据是提前检查,导入好的,那么就看model.py文件定义sku这个类有没字段定义错了类型。

default_image_url = models.CharField(max_length=200, default='', null=True, blank=True, verbose_name='默认图片')

对应MySQL表的字段,发现default_image_url这个字段在MySQL表中的字段是default_image。而且商品不仅包含文字信息,也包含图片,明显这个代表图片的字段定义为charfield是错的。于是改为如下:

default_image = models.ImageField(max_length=200, default=&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值