修改默认用户模型后,Django管理面板不起作用

时间:2011-01-08 13:44:28

标签: python django django-admin

我试图扩展用户个人资料。我创建了一些解决方案,但最推荐的是创建包含原始django.contrib.auth.models.User类的外键的新用户类。我用this做了,所以我在models.py

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    website_url = models.URLField(verify_exists=False)

并在我的admin.py

from django.contrib import admin
from someapp.models import *
from django.contrib.auth.admin import UserAdmin

# Define an inline admin descriptor for UserProfile model
class UserProfileInline(admin.TabularInline):
    model = UserProfile
    fk_name = 'user'
    max_num = 1

# Define a new UserAdmin class
class MyUserAdmin(UserAdmin):
    inlines = [UserProfileInline, ]

# Re-register UserAdmin
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)

现在当我尝试在管理面板中创建/编辑用户时,我有一个错误: "Unknown column 'content_userprofile.id' in 'field list'"其中内容是我的appname。

我试图将AUTH_PROFILE_MODULE = 'content.UserProfile'行添加到settings.py,但没有效果。

如何告诉专家组管理员知道如何正确显示用户表单中的字段?

1 个答案:

答案 0 :(得分:2)

经过一番努力,我找到了可行的解决方案:

  1. 需要AUTH_PROFILE_MODULE = 'content.UserProfile'
  2. 请删除您的数据库(auth_user,yourapp_userprofile表应该足够了)
  3. 终于python manage.py syncdb