【发布时间】:2013-06-01 11:19:20
【问题描述】:
我在 Django 1.5 应用程序中使用自定义用户模型 myapp.MyUser。我按照文档的要求更新了我的设置,AUTH_USER_MODEL = "myapp.MyUser"。由于 MyUser 扩展了 AbstractUser,我使用以下代码创建了管理员:
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin
admin.site.register(get_user_model(), UserAdmin)
它工作正常,除了创建形式。当我尝试创建新用户时,会引发以下异常:
DatabaseError at /admin/core/user/add/
(1146, "Table 'mydatabase.auth_user' doesn't exist")
完整的回溯可以在here找到。
挖掘 Django 的源代码,它看起来像 UserCreationForm - 由 UserAdmin 使用 - 引用 django 的内置 auth.User directly,而不是使用 get_user_model。
可能是问题吗?为什么除了创建之外,所有内容都引用myapp.MyUser,包括管理员的身份验证和更改表单?
【问题讨论】:
-
你跑
syncdb了吗? -
是的@girasquid,myapp_myuser 已创建,但 auth_user 不会,正如预期的那样。
标签: python django django-admin