我正在尝试使用 South 进行数据迁移。我想将存储在 django-allauth 的 SocialAccount 模型中的信息迁移到我自己的 UserProfile 模型中。但是,我无法将 django-allauth 导入数据迁移文件。这是我到目前为止所拥有的:
class Migration(DataMigration):
def forwards(self, orm):
"Write your forwards methods here."
# Note: Don't use "from appname.models import ModelName".
# Use orm.ModelName to refer to models in this application,
# and orm['appname.ModelName'] for models in other applications.
for user in orm['auth.User'].objects.all():
import allauth.socialaccount.models
print dir(user)
prof = orm.UserProfile(user=user)
prof.name = "%s %s" % (user.first_name, user.last_name)
prof.is_ghost = False
prof.has_facebook = True if len(user.socialaccount_set.all()) > 0 else False
prof.save()
运行后,我得到:
AttributeError: 'User' object has no attribute 'socialaccount_set'
我检查了 的命名空间user
,似乎socialaccount_set
不存在。但是,当我在 shell 中测试它时它就出现了,而且我一直在我的应用程序中使用它。有什么想法吗?