2017-02-09 224 views
2

在Django admin中,我錯誤地通過嘗試輸入錯誤的密碼來鎖定自己。 我稍後刪除了用戶,並使用manage.py createsuperuser創建了另一個用戶。不過,它仍然說我被鎖定了。我如何解鎖自己?Django管理員如何解鎖自己的帳戶?

當我嘗試登錄使用Django管理它提供了以下錯誤..

帳戶鎖定:太多的登錄嘗試。聯繫管理員解鎖您的帳戶。

+1

在默認情況下,django中沒有任何東西會鎖定一個帳戶,所以你到底在使用什麼? – Sayse

+0

當您嘗試登錄時,Django-admin ..我錯誤地輸入了錯誤的密碼,嘗試了3個不同的密碼。我後來刪除了用戶,並創建了另一個使用manage.py createsuperuser,但它仍然不起作用 –

+0

默認情況下,django中有* nothing *將鎖定一個帳戶 – Sayse

回答

3

鑑於您的錯誤消息和3個打擊策略,我假設您的項目中有django-axes。無論用戶身在何處,您都可能會將其配置爲通過IP進行阻止。這將解釋爲什麼創建一個新用戶不起作用。

Djang-axes documentation爲您提供瞭如何清除鎖定的大綱。

manage.py axes_reset將重置所有鎖定和訪問記錄。

如果您目前正在生產中,不希望冒險重置任何有效的停工,你可以嘗試重置的只是你的IP

manage.py axes_reset ip will clear lockout/records for ip

因此,例如上,如果您已登錄到服務器所在的同一臺計算機上,則可以使用localhost: manage.py axes_reset ip 127.0.0.1

如果對於某些原因不起作用,您仍然可以從數據庫中手動刪除AccessAttempt。這當然假設你有權訪問你的數據庫,你的用戶有刪除權限,你對SQL很熟悉,並且你沒有改變django-axes的默認表名。

delete from axes_accessattempt where username ='your_username';其中'your_username'是您希望解鎖的帳戶。

這也可以通過ip完成: delete from axes_accessattempt where ip_address='your_ip';其中'your_ip'是您正在使用的計算機的IP地址。

0

沒錯這裏是我做到了..去使用python manage.py shell 有輸入以下命令外殼

from axes.models import AccessAttempt 
AccessAttempt.objects.all().delete() 

如果需要,不過數據,那麼你必須通過

只刪除包含您的用戶名對象
for obj in AccessAttempt.objects.all(): 
    if obj.username == your_username: 
     obj.delete()