我myapp.MyUser
在 Django 1.5 应用程序中使用自定义用户模型。我按照文档要求更新了我的设置,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")
完整的追溯可以在这里找到。
挖掘出 Django 的源代码,它看起来像UserCreationForm
- 由 UserAdmin 使用 -auth.User
直接引用 django 的内置,而不是使用get_user_model
。
这可能是问题吗?为什么所有引用myapp.MyUser
,包括管理员的身份验证和更改表单,除了创建?