我正在尝试使用以下代码创建自定义权限和组模型,但是当我尝试迁移时出现错误" django.db.utils.ProgrammingError:relation" auth_permission"已经存在"
class Role(models.Model):
def __unicode__(self):
return self.name
# slug = models.CharField(max_length=50, primary_key=True)
name = models.CharField(max_length=50, blank=True)
class Meta:
db_table = 'auth_group'
# ROLE_CHOICES = (('superuser', 'Super User'),('user', 'User'))
class Permission(models.Model):
def __unicode__(self):
return self.name
codename = models.CharField(max_length=50, blank=False)
name = models.CharField(max_length=50, blank=False)
class Meta:
db_table = 'auth_permission'
--------------------------- Settings.py ----------------- -----------
INSTALLED_APPS = (
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'rest_framework.authtoken',
'django_filters',
'sparkAuth',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
)
答案 0 :(得分:1)
class Permission(models.Model):
def __unicode__(self):
return self.name
codename = models.CharField(max_length=50, blank=False)
name = models.CharField(max_length=50, blank=False)
class Meta:
db_table = 'auth_permission'
您希望您的表名为auth_permission
,Permission
应用中的django.contrib.auth
模型已在使用该表。这就是错误说明的原因:
django.db.utils.ProgrammingError: relation "auth_permission" already exists
解决方案:
<app>_<modelclass>
django.contrib.auth
中的INSTALLED_APPS
移除settings.py
,但是你冒着破坏很多东西的风险,你可能真的不想要那样做。