Django 转储数据:"Unable to serialize database" 由于 BitFlagField 变量导致的错误
Django dumpdata: "Unable to serialize database" error due to a BitFlagField var
我一直在尝试创建 table 的夹具,但它总是失败并显示以下消息:CommandError: Unable to serialize database: __str__ returned non-string (type method)
。堆栈跟踪同样没有帮助,指出其中一个 Django 文件是罪魁祸首。
经过一些摆弄,我设法在 models.py 中找到了罪魁祸首:
class UserExtra(model.Models):
(...)
blocked = BitFlagField(
flags=(
'manual', 'system', 'tries', 'expired', 'inactivity',
'nosys_nobypass'
),
db_column='ind_block'
)
class 只是一个变量列表,没有任何功能。如果我删除那个 var 和 运行 dumpdata 命令,它就可以工作。如何序列化该字段?
正如 Ian Shelvington 在上面的评论中帮助我弄清楚的那样,BitFlagField 是一种自定义类型,问题出在它的 __str__
函数的 return 中,因为它正在调用 __repr__
方法错误 (return self.__repr__
).
关闭这个是因为原问题的问题已经解决了,尽管这导致了另一个问题。
我一直在尝试创建 table 的夹具,但它总是失败并显示以下消息:CommandError: Unable to serialize database: __str__ returned non-string (type method)
。堆栈跟踪同样没有帮助,指出其中一个 Django 文件是罪魁祸首。
经过一些摆弄,我设法在 models.py 中找到了罪魁祸首:
class UserExtra(model.Models):
(...)
blocked = BitFlagField(
flags=(
'manual', 'system', 'tries', 'expired', 'inactivity',
'nosys_nobypass'
),
db_column='ind_block'
)
class 只是一个变量列表,没有任何功能。如果我删除那个 var 和 运行 dumpdata 命令,它就可以工作。如何序列化该字段?
正如 Ian Shelvington 在上面的评论中帮助我弄清楚的那样,BitFlagField 是一种自定义类型,问题出在它的 __str__
函数的 return 中,因为它正在调用 __repr__
方法错误 (return self.__repr__
).
关闭这个是因为原问题的问题已经解决了,尽管这导致了另一个问题。