我目前正在做一个django项目。我正在尝试将UserProfile模型内联添加到我的用户模型中。在我的models.py中,我有:
class UserProfile(models.Model):
'''
Extension to the User model in django admin.
'''
user = models.ForeignKey(User)
site_role = models.CharField(max_length=128, choices=SITE_ROLE)
signature = models.CharField(max_length=128)
position_title = models.CharField(max_length=128)
on_duty = models.BooleanField(default=False)
on_duty_order = models.IntegerField()在我的admin.py中,我有:
class UserProfileInline(admin.StackedInline):
model = UserProfile
class UserAdmin(admin.ModelAdmin):
inlines = [UserProfileInline]
admin.site.unregister(User)
admin.site.register(User, UserAdmin)当我运行开发服务器时(是的,我已经重启了它),我得到了以下异常:
NotRegistered at /admin
The model User is not registered此异常来自admin.site.unregister(User)行。
但是,当我注释掉这一行时,我得到了以下异常:
AlreadyRegistered at /admin
The model User is already registered我的django设置似乎有点两极。我花了一个小时左右的时间研究这个问题,我的代码似乎对其他人很有效。有没有人知道为什么会发生这种情况?
谢谢,特拉维斯
发布于 2010-09-17 03:26:24
我的猜测是你要么在做一些疯狂的模块导入...或者..。您的settings.INSTALLED_APPS列表中存在排序问题。确保'django.contrib.auth'出现在替换默认管理员的应用程序之前。该列表应如下所示:
INSTALLED_APPS = (
# django apps first
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.admin',
# your stuff from here on
'yourproject.userstuff',
)这样,django的应用程序会注册User模型,然后您可以取消注册,然后使用您自己的ModelAdmin重新注册。
https://stackoverflow.com/questions/3729866
复制相似问题