通过直接写入数据库将新用户添加到Django

问题描述 投票:1回答:4

我需要以编程方式从第3方平台(PHP)将新用户添加到Django设置中,看来我只需要在auth_user表中写入一个条目即可实现此目的。

我正确吗?我还需要做其他事情吗?

谢谢!

django django-models user-management
4个回答
1
投票

这将起作用,假设您不介意重新实现Django为您所做的事情;特别是对密码进行哈希处理,但也可能按照Ignacio的建议创建UserProfile对象。您还需要根据项目中的post_savepre_save信号(如果有)来设计出另一种代码解决方案。

您还没有解释为什么,您想用这种方式做事:是什么指示除了对SQL数据库的共享访问权之外,您无法进行任何进程间通信?

如果您可以做不同的事情,使用the included UserCreationFormUserCreationForm设置仅本地主机的API端点来创建用户可能更有意义。


1
投票

[从技术上讲是,但是可能还有其他要求,例如创建the create_user() helper method,这些要求由业务逻辑而非数据库控制。也许您应该考虑在单独的表/数据库中创建用户并编写自定义身份验证后端,该后端将从此共享位置导入用户。


1
投票

[如果可能,我会考虑您的方法。在我看来,您会冒充数据完整性问题的风险,并且在绕过django的表的同时又绕过了其久经考验的业务逻辑,因此很难发现错误。我会通过在django中编写一个简单的API来解决这个问题,您可以向您展示php脚本,该脚本将允许django代表php添加用户。无论如何,从编码时间和复杂性的角度来看,这实际上可能是一种更简单的方法。


0
投票

它在PHP中为我工作。

create_user()
© www.soinside.com 2019 - 2024. All rights reserved.