當我嘗試使用manage.py
syncdb
爲我的Django應用程序創建初始數據庫時,它在輸入電子郵件地址後即將創建超級用戶時崩潰:創建超級用戶時Django manage.py sync_db崩潰
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/getpass.py", line 114, in fallback_getpass
stacklevel=2)
getpass.GetPassWarning: Can not control echo on the terminal.
我一直試圖解決這個問題:
跳過超級用戶的創建過程中
syncdb
和運行createsupercommand
。這似乎是爲了解決問題,因爲創建了超級用戶,但無法使用該用戶標識和密碼登錄到admin site
。刪除並重新創建數據庫。
雙重檢查數據庫中的用戶配置文件:用戶名,密碼,is_staff,is_active都具有正確的值。
調試該過程,直到我實際看到傳遞給
authenticate
函數的正確用戶名和密碼。檢查的數據庫編碼設置爲UTF-8。
我使用Django 1.6.5,Pycharm和MySQL。整個事情是相當莫名其妙的,因爲我的其他項目具有相同的設置工作完美無瑕。
有關可能會導致此問題的任何想法?
編輯: 顯然,在僵化的超級用戶創建過程中,Django以某種方式將密碼標記爲不可用(這是不可檢測的,因爲哈希存儲在數據庫中並且不可解釋)。我設法通過在Django環境之外創建密碼散列並將其粘貼到數據庫中來繞過這一點。至少它允許我現在登錄。問題還沒有解決,雖然...
這似乎是由您解釋解釋警告視爲錯誤,並且無論出於何種原因,您的Mac無法處理非呼應密碼的事實引起的;一個簡單的解決方法就是像這樣運行./manage.py:'python -W ignore createsuperuser';這樣你就可以創建超級用戶,但是密碼可能會被回顯; –