因此,我成功地从配置文件模型迁移到扩展的用户模型。数据迁移工作正常,但我无法从管理员访问我的用户,我收到以下错误:
DatabaseError: (1146, "Table 'mydb.app_myuser_groups' doesn't exist")
我在models.py
中定义的所有内容如下:
class MyUser(AbstractUser):
isSpecial = models.BooleanField(default=True)
跟随these instructions。我还需要做些什么才能让它发挥作用吗?
答案 0 :(得分:1)
请参阅我之前的回答here并修改第4步,如下所示:
# encoding: utf-8
from south.db import db
from south.v2 import SchemaMigration
class Migration(SchemaMigration):
def forwards(self, orm):
# Fill in the destination name with the table name of your model
db.rename_table('auth_user', 'accounts_user')
db.rename_table('auth_user_groups', 'accounts_user_groups')
def backwards(self, orm):
db.rename_table('accounts_user', 'auth_user')
db.rename_table('accounts_user_groups', 'auth_user_groups')
models = { ....... } # Leave this alone
答案 1 :(得分:0)
AbstractUser
继承自PermissionMixin
,其ManyToManyField
模型Group
。所以数据库中应该有一个app_myuser_groups
表。南方可能能够创建中间表,但我不知道如何。我所知道的是,删除syncdb
之后app_myuser
应该有效,即使您的迁移会被粉碎。
关于adding a through table in a migration的这个问题可以为您提供更多见解。