迁移后无法访问admin中的用户

时间:2013-04-30 11:00:01

标签: django django-admin django-1.5

因此,我成功地从配置文件模型迁移到扩展的用户模型。数据迁移工作正常,但我无法从管理员访问我的用户,我收到以下错误:

DatabaseError: (1146, "Table 'mydb.app_myuser_groups' doesn't exist")

我在models.py中定义的所有内容如下:

class MyUser(AbstractUser):
    isSpecial = models.BooleanField(default=True)

跟随these instructions。我还需要做些什么才能让它发挥作用吗?

2 个答案:

答案 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的这个问题可以为您提供更多见解。