我在django1.5应用程序中使用自定义用户模型myapp.MyUser
。我按照文档中的说明更新了设置,AUTH_USER_MODEL = "myapp.MyUser"
。在MyUser扩展AbstractUser时,我用以下代码创建了admin:
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin
admin.site.register(get_user_model(), UserAdmin)
除了创造形式外,它的效果很好。尝试创建新用户时,会引发以下异常:
^{pr2}$完整的回溯可以找到here。在
挖掘出Django的源代码看起来像是UserCreationForm
(由UserAdmin使用)引用了Django的内置auth.User
directly,而不是使用get_user_model
。在
会是问题吗?为什么所有东西都引用myapp.MyUser
,包括管理员的身份验证和更改表单,除了创建?在
如果您不介意将您的自定义模型存储在一个名为
auth_user
的表中,您只需在Meta
中设置它,这样就解决了auth_user table doesn't exist
。你只需要:正如您所说,
UserCreationForm
直接引用auth.User
。custom users and built in auth forms上的Django文档声明必须为任何自定义用户模型重写它。在有一个相关的票证Ticket 20086,该票证最初被关闭为无效,因为用户创建表单正在按文档所述工作。在
在同一个页面上有一个full example,它向您展示了如何重写表单并在管理中注册自定义用户模型。在
相关问题 更多 >
编程相关推荐