Django 当函数尝试通过外键访问表时,South数据迁移失败,并出现ValueError
我的数据迁移引用了一个函数,该函数将当前模型的对象作为参数,然后尝试通过外键从另一个表(在同一个应用程序中)创建对象。该对象的创建失败,并出现一个值错误,指出作为参数传递的对象不是预期类的实例(尽管它是)。这两张表之间似乎没有任何联系 下面是数据迁移Django 当函数尝试通过外键访问表时,South数据迁移失败,并出现ValueError,django,foreign-key-relationship,django-south,data-migration,Django,Foreign Key Relationship,Django South,Data Migration,我的数据迁移引用了一个函数,该函数将当前模型的对象作为参数,然后尝试通过外键从另一个表(在同一个应用程序中)创建对象。该对象的创建失败,并出现一个值错误,指出作为参数传递的对象不是预期类的实例(尽管它是)。这两张表之间似乎没有任何联系 下面是数据迁移 for ranking in orm.Ranking.objects.all(): find_matching_domains(ranking) find_matching_domains在另一个应用程序中声明,并在数据迁
for ranking in orm.Ranking.objects.all():
find_matching_domains(ranking)
find_matching_domains
在另一个应用程序中声明,并在数据迁移中导入。尝试创建dictionary对象时失败
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.
文件“…”,第175行,在save\u url\u dict value=url\u dict中)
文件“../lib/python2.6/site packages/django/db/models/base.py”,第355行,在uuu init_uuuusetattr(self,field.name,rel_obj)中
文件“../lib/python2.6/site packages/django/db/models/fields/related.py”,第366行,在_集_; self.field.name,self.field.rel.to._meta.object name)中
ValueError:无法分配“”:“CategoryDict.category”必须是“category”实例。
我已经在迁移中冻结了相应的模式,但这没有效果
我使用Django 1.4.3。事实证明,数据迁移不适合从项目中执行方法来填充数据库。
我没有编写迁移,而是编写了一个管理接口方法,允许从管理接口执行我的代码。我不是南方用户,但您可能需要发布更完整的代码才能得到一个好的答案。根据我目前的理解,在迁移中不可能做到我想要的。我通过管理界面触发更新方法,而不是使用迁移,从而解决了我的问题。