0

我的數據遷移引用了一個函數,該函數將當前模型的對象作爲參數,然後嘗試從另一個表中創建一個對象同一個應用程序)通過一個外鍵。該對象的創建失敗,並顯示一個值錯誤,指出作爲參數傳遞的對象不是預期類的實例(儘管如此)。這兩個表格似乎沒有聯繫。當函數嘗試通過外鍵訪問表時,南數據遷移失敗並出現ValueError

這裏是數據遷移。

for ranking in orm.Ranking.objects.all(): 
     find_matching_domains(ranking) 

find_matching_domains在另一個應用程序中聲明並導入數據遷移。嘗試創建字典對象時失敗。

dico = CategoryDict(category=ranking.category, 
        key="url_dict", 
        value=url_dict) 

,出現以下錯誤:

File "...", line 175, in save_url_dict value=url_dict) 
File ".../lib/python2.6/site-packages/django/db/models/base.py", line 355, in __init__ setattr(self, field.name, rel_obj) 
File ".../lib/python2.6/site-packages/django/db/models/fields/related.py", line 366, in __set__ self.field.name, self.field.rel.to._meta.object_name)) 
ValueError: Cannot assign "<Category: Category object>": "CategoryDict.category" must be a "Category" instance. 

我已經凍結在遷移相應的模式,但這並不具效力。

我使用Django 1.4.3。

+0

我不是南方用戶,但您可能需要發佈更完整的代碼才能獲得較好的答案。 –

+0

從我目前的理解來看,我不可能在遷移中做我想做的事情。我通過管理界面觸發更新方法解決了我的問題,而不是使用遷移。 – lechatpito

回答

1

事實上,事實證明,數據遷移不適合執行項目中的方法來填充數據庫。 而不是編寫遷移我寫了一個管理界面方法,允許從管理界面執行我的代碼。

相關問題