django - 异常 __str__ 在 Django 中返回非字符串(字节类型)
问题描述
尝试执行以下方法,其中我得到异常,如异常 __str__ 返回非字符串(类型字节)。
def __unicode__(self):
return u"{}{:02d}:{:02d}:{:05.2f}".format(
'-' if self.sign == -1 else '', self._deghour, self.minute, self.second)
def __str__(self):
return unicode(self).encode('utf-8')
def __repr__(self):
return u"RADecBase('{0}')".format(self)
解决方案
您对 unicode 与字节以及编码与解码感到困惑。
编码将(unicode)字符串转换为字节。但是该__str__
方法必须返回一个字符串,而不是字节。不需要在那里编码。
def __str__(self):
return unicode(self)
但是我什至不知道这是如何工作的,因为 Python 3 没有定义unicode
内置函数并且无法识别该__unicode__
方法。你应该直接在__str__
:
def __str__(self):
return "{}{:02d}:{:02d}:{:05.2f}".format(
'-' if self.sign == -1 else '', self._deghour, self.minute, self.second)
推荐阅读
- ios - SwiftUI 在开关内填充视图
- linux - 带有包含变量的 grep 的 Bash 循环
- google-cloud-platform - gcloud 配置项目过滤器
- java - 如何创建缓存连接工厂的 bean 以发布到 tibco ems 队列
- angular - 在 Angular 中使用 AXIOS 下载 ELSX 文件
- c# - 从 blob 存储 Azure 下载文件时无法执行查询
- php - 在 laravel 8 中找不到类'stripe\Stripe'
- multithreading - 如何使用 OpenMP 并行化 fork/wait 方法?
- java - Eclipse Tomcat Maven
- r - 为什么 readxl 比 xlsx 包快这么多?