Django Can';迁移后无法访问管理员中的用户
因此,我成功地从概要文件模型迁移到扩展用户模型。数据迁移工作正常,但我无法从管理员访问我的用户,我遇到以下错误:Django Can';迁移后无法访问管理员中的用户,django,django-admin,django-1.5,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) 跟随的。我还需要做更多的工作来实现这一点
DatabaseError: (1146, "Table 'mydb.app_myuser_groups' doesn't exist")
我在models.py
中定义的所有内容如下:
class MyUser(AbstractUser):
isSpecial = models.BooleanField(default=True)
跟随的。我还需要做更多的工作来实现这一点吗?
AbstractUser
继承自PermissionMixin
,它有一个ManyToManyField
到组
模型。因此,数据库中应该有一个app\u myuser\u groups
表。South可能能够创建中间表,但我不知道如何创建。我所知道的是,删除app\u myuser
后的syncdb
应该可以工作,即使您的迁移会被分解
关于的这个问题应该会让您有更多的了解。
AbstractUser
继承自PermissionMixin
,它有一个ManyToManyField
到组
模型。因此,数据库中应该有一个app\u myuser\u groups
表。South可能能够创建中间表,但我不知道如何创建。我所知道的是,删除app\u myuser
后的syncdb
应该可以工作,即使您的迁移会被分解
关于的这个问题应该会让您有更多的了解。请参阅我前面的答案,并修改步骤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
请参阅我前面的答案,并修改步骤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
可能是一个愚蠢的问题,但:mydb数据库中是否存在app_myuser_组?@Steve Well否,但我想知道为什么管理员认为应该存在。可能是一个愚蠢的问题,但:mydb数据库中是否存在app_myuser_组?@Steve Well否,但是我想知道为什么管理员会这么认为。在通过
rename\u table
完成迁移之后,我可以对其他auth
表使用这种方法吗?我很惊讶其他地方还没有涉及到这一点……不幸的是,我对南方移民仍然感到不自在。我只有一个站点在生产中(在我对DRY和South不太了解的时候制作),我的其他站点经常被DB重置。我查看了migrate\u table
,我不明白为什么您不能将它用于其他表,甚至是中间表。另一件可能太困难的事情是更改组
字段并添加一个指向现有中间表的db_table
参数。通过rename_table
完成迁移后,我是否可以对其他auth
表使用这种方法?我很惊讶其他地方还没有涉及到这一点……不幸的是,我对南方移民仍然感到不自在。我只有一个站点在生产中(在我对DRY和South不太了解的时候制作),我的其他站点经常被DB重置。我查看了migrate\u table
,我不明白为什么您不能将它用于其他表,甚至是中间表。另一件可能过于困难的事情是更改groups
字段并添加一个指向现有中间表的db_table
参数。