【发布时间】:2021-01-14 16:01:31
【问题描述】:
我正在用 Django 建立一个食品订购网站。我希望我的用户在我的网站上注册一个帐户,他们应该登录才能实际订购。我想使用 Django 内置的 User 类,但它不包括地址、确认 ID 和电话号码等必要字段。如果我构建一个自定义的User 模型,那么它没有很多像auth.authenticate 这样我可以使用的好帮助函数。我搜索了这个主题,发现可以使用AbstractUser。但是当我从AbstractUser 继承我的CustomUser 类时,一些奇怪的事情开始发生。经过更多研究,我发现在应用我的内置迁移后更改 User 模型会产生一些错误,因为存在一些关系或其他东西。
我删除了我的数据库并创建了一个新数据库。现在,我正在从内置的User 类扩展我的CustomUser 类。这很好用,只有你不能用auth.authenticate 检查确认 ID。此外,每次我创建一个新的CustomUser 时,它似乎都会创建两个模型,另一个在 auth 选项卡下的 Users 中。
您能告诉我在应用内置迁移后将User 模型与更多字段连接起来的任何好方法吗?提前致谢。
【问题讨论】:
-
如果您只想添加额外信息而不更改默认用户行为,最好使用用户配置文件模式:docs.djangoproject.com/en/dev/topics/auth/customizing/… 然后您可以在用户注册表单中包含配置文件字段:stackoverflow.com/questions/35671318/…
-
@Selcuk,谢谢!
OneToOneField非常有帮助。如果你能把它作为答案,我很乐意接受。 :)
标签: django database authentication django-models