我需要以編程方式將一個新用戶從第三方平臺(PHP)添加到Django安裝程序,似乎我只需要在auth_user
表來實現這一點。通過直接在數據庫中添加一個新用戶到Django
我正確嗎?我還需要做其他事嗎?
謝謝!
我需要以編程方式將一個新用戶從第三方平臺(PHP)添加到Django安裝程序,似乎我只需要在auth_user
表來實現這一點。通過直接在數據庫中添加一個新用戶到Django
我正確嗎?我還需要做其他事嗎?
謝謝!
假設你不介意重新實現Django爲你做的事情,這將起作用;特別是對密碼進行哈希處理,但也可能會像Ignacio建議的那樣創建一個對象。您還需要針對項目中依賴post_save
或pre_save
信號的代碼(如果有)尋找另一種解決方案。
你沒有解釋過爲什麼你想這樣做:什麼決定了除了對SQL數據庫的共享訪問之外,你不能進行任何進程間通信?
如果您可以以不同的方式做事,則可以使用the included UserCreationForm
或the create_user()
helper method設置僅用於本地主機的API端點來創建用戶,這可能更有意義。
本地主機API的想法非常出色,謝謝! – user967722 2012-07-26 12:35:54
技術上可以,但可能還有其他要求,例如創建受業務邏輯管理而不是數據庫的UserProfile
。也許你應該考慮在一個單獨的表/數據庫中創建用戶,並編寫一個自定義身份驗證後端,該後端從該共享位置導入用戶。
如果可能,我會重新考慮你的方法。在我看來,你冒着數據完整性問題的風險,很難通過混淆django的表格而繞過其經過驗證的業務邏輯來發現錯誤。我會通過在django中編寫一個簡單的API來解決這個問題,這個API會暴露給你php腳本,它允許django代表php添加用戶。無論如何,就編碼時間和複雜性而言,這實際上可能是一個更簡單的方法。
是的,你可以將數據直接寫入'auth_user'表中。請注意,您需要使用Django使用的相同格式對密碼進行哈希處理。如果該網站具有用戶配置文件,則可以將相關數據添加到配置文件表的任何內容。 – Alasdair 2012-07-25 18:49:03