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__).

关闭这个是因为原问题的问题已经解决了,尽管这导致了另一个问题。