Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 当函数尝试通过外键访问表时,South数据迁移失败,并出现ValueError_Django_Foreign Key Relationship_Django South_Data Migration - Fatal编程技术网

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。

事实证明,数据迁移不适合从项目中执行方法来填充数据库。
我没有编写迁移,而是编写了一个管理接口方法,允许从管理接口执行我的代码。

我不是南方用户,但您可能需要发布更完整的代码才能得到一个好的答案。根据我目前的理解,在迁移中不可能做到我想要的。我通过管理界面触发更新方法,而不是使用迁移,从而解决了我的问题。