【问题标题】:dumpdata, too many arguments?转储数据,参数太多?
【发布时间】:2012-05-01 23:57:39
【问题描述】:

我们刚刚迁移到一个新的服务器,并通过这个命令转储数据(modernpolitcs 是应用名称):

python manage.py dumpdata modernpolitics > /dump/backup.json

在旧服务器上工作,但现在不能在新服务器上工作(在重新安装所有依赖项之后)。

我得到的错误是,“错误:无法序列化数据库:get_db_prep_value() 需要至少 3 个参数(给定 2 个)”

用谷歌搜索了这个错误,刚刚找到了几张关于旧 django 开发的“已解决”的票。任何想法可能是什么问题?

python 2.7.2 django 1.4

我可以转储一个模型,例如现代政治问题..嗯

【问题讨论】:

    标签: django


    【解决方案1】:

    get_db_prep_value() 至少需要 3 个参数(给定 2 个)

    这个错误听起来很熟悉:支持多数据库的 django 为模型字段采用了一个新的 connection 参数。

    如果您使用任何第三方字段或子类Fields,则需要更新它们以接受/传递此新参数。

    回溯将显示哪个字段正在中断。

    【讨论】:

    • 太棒了,回溯显示这是导致问题的自定义模型字段。我正在阅读自定义模型字段的文档,但不清楚连接参数应该是什么。任何想法或链接到更好的解释?只是指示要使用哪个数据库连接的字符串,例如'默认'?编辑:尝试传递建议的字符串并且没有抛出错误!
    • 你可能应该使用 get_prep_value 而不是 get_db_prep_value
    • 由于get_db_prep_value method 看起来实际上并没有使用connection 参数,您只需传入None 作为值来解决此错误。在您的自定义字段代码中查找类似 @​​987654327@ 的内容并将其替换为类似 self.get_db_prep_value(value, None) 的内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多