序言
之前写项目的时候遇到一个问题,卡了我几天,还好最终得以解决。问题如下:
Unable to get repr for <class ‘django.db.models.query.QuerySet’>
详情
我尝试使用WordPress的数据库进行一个Blog项目的编写,但是在渲染一篇文章的时候,一直有部分内容无法正常显示,调试的时候总会出现“Unable to get repr for <class ‘django.db.models.query.QuerySet’>”这个错误,查询没有任何返回。
使用WordPress数据库重新建立的models 类中的 __str__()
方法由于我不太熟悉,直接就返回了类的值,如下:
class TermRelationships(models.Model):
object_id = models.BigIntegerField(primary_key=True)
term_taxonomy_id = models.BigIntegerField()
term_order = models.IntegerField()
class Meta:
db_table = 'wp_term_relationships'
unique_together = (('object_id', 'term_taxonomy_id'),)
def __str__(self):
return self.object_id, self.term_taxonomy_id, self.term_order
就导致了上述的错误Unable to get repr for <class 'django.db.models.query.QuerySet'>
然后通过多方查找资料并阅读别人写好的blog源代码,并通过尝试,终于解决了这个问题,查询也是有结果了:
taxonomys =<QuerySet [<TermRelationships: 608, 98, 0>, <TermRelationships: 608, 101, 0>, <TermRelationships: 608, 102, 0>, <TermRelationships: 608, 103, 0>, <TermRelationships: 608, 104, 0>, <TermRelationships: 608, 105, 0>]>
方法很简单,就是把需要的字段通过字符串的方式返回,以上述为例:
class TermRelationships(models.Model):
object_id = models.BigIntegerField(primary_key=True)
term_taxonomy_id = models.BigIntegerField()
term_order = models.IntegerField()
class Meta:
db_table = 'wp_term_relationships'
unique_together = (('object_id', 'term_taxonomy_id'),)
def __str__(self):
return u"%s, %s, %s" % (self.object_id, self.term_taxonomy_id, self.term_order)
结语
会者不难,确实是这样的,但就是这个简单的问题,卡了我两三天。在这里记录一下,给自己一个警醒,能帮到需要的人那就更好了~
如有错误,敬请指出,感谢指正! — 2019-08-27 21:33:00 于苏州
最新评论
没有收到邮件通知
我的评论通知貌似坏掉了,定位一下问题
测试一下重新部署后的邮件功能
居然看到自己公司的MIB库,诚惶诚恐
那可能是RobotFramework-ride的版本问题。我装的1.7.4.2,有这个限制。我有空再尝试下旧版本吧,感谢回复。
你好!我在python2.7中安装RobotFramework-ride的时候提示wxPython的版本最高是2.18.12,用pip下载的wxPython版本是4.10,而且我在那个路径下没有找到2
真的太好了,太感谢了,在bilibili和CSDN上都找遍了,终于在你这里找到了
看到下面的链接了,不用了。