2012-05-01 61 views
3

我們剛剛遷移到新的服務器上,並通過這個命令dumpdata(modernpolitcs是應用程序的名稱):dumpdata,參數太多?

蟒蛇manage.py dumpdata modernpolitics> /dump/backup.json

工作舊的服務器上,但現在沒有在新服務器上工作(搭售後重新安裝所有依賴項)。

我得到的錯誤是「錯誤:無法序列數據庫:get_db_prep_value()至少需要3個參數(2給出)」

Google搜索錯誤,只是發現一對夫婦「解決」關於門票舊的Django發展。任何想法可能是什麼問題?

蟒蛇2.7.2 的Django 1.4

我能夠傾倒一個模式,例如modernpolitics.question ..嗯

回答

4

get_db_prep_value() takes at least 3 arguments (2 given)

此錯誤聽起來很熟悉:多數據庫支持的Django花費示範田新connection參數。

如果您使用任何第三方字段或子類別Field s,則需要更新它們以接受/傳遞此新參數。

回溯將揭示哪個字段正在破壞。

+0

真棒,回溯顯示它是導致問題的自定義模型字段。我正在閱讀自定義模型字段的文檔,並且它不清楚連接參數應該是什麼。任何想法或鏈接更好的解釋?只是指示使用哪個數據庫連接的字符串,例如'默認'?編輯:試圖通過建議的字符串,並沒有引發錯誤! – maxfowler

+1

您可能應該使用get_prep_value而不是get_db_prep_value – DataGreed

+0

因爲它看起來像['get_db_prep_value'方法](https://github.com/django/django/blob/a4c23f70deda5321687cd1f759c65a35d161e793/django/db/models/fields/__init__.py #L616-L625)實際上並沒有使用'connection'參數,你可以傳入'None'作爲解決這個錯誤的值。在你的自定義字段代碼中查找類似'self.get_db_prep_value(value)'的東西,並用類似這樣的'self.get_db_prep_value(value,None)替換它' –