2017-09-17 55 views
0

(太神奇了,我還沒有發現這樣的問題呢!)Django的,我刪除AnonymousUser,如何恢復

我在數據庫中刪除了我的一部分用戶,一不小心還AnonymousUser -instance。 我該如何恢復他? (呃......爲了政治上的正確性,他/她):-P)

我確實需要他在db中的一個實例,對嗎? (到目前爲止,通過快速瀏覽我的網站,我沒有遇到問題)。順便說一句,沒有他的問題會是什麼?

但沒有AnonymousUser.objects-管理員創建一個。並且save()無論如何都沒有實現,就像the docs說的那樣。那麼,我要刪除用戶表並遷移?它會幫助和/或我可以以不同的方式行事嗎?

感謝很多:)

回答

1

Anonymous userdjango.contrib.auth.models.AnonymousUser一個實例,並且在運行時創建的權威性後端沒有發現會話和任何身份驗證的用戶也並不存儲在數據庫中,因此save沒有在此實現,並且id始終爲None,如文檔所述。

更新後評論

django-userena使用django-guardian每個對象的權限管理和django-guardian將創建該用戶automaticallysignals.post_migrate信號。因此,只需運行migrate命令,您應該讓所謂的匿名用戶回來(這不是django.contrib.auth.models.AnonymousUser的實例,它是您的用戶模型的實際用戶實例)。

根據您的需要,您可以完全禁用此行爲,請檢查django-guardiandocs

+0

...但之前有一個AnonymousUser顯示在我的用戶列表中,現在不是! aaah,也許一些軟件包(userena?)創建了一個普通用戶並稱他爲AnonymousUser? - 這將是非常具有誤導性的,根本不是pythonic – Ilja

+0

@Ilja檢查更新的答案。謝謝! –

+0

是的,你是對的!謝謝你的解釋。 django-guardian的誤導。我會建議重命名默認爲不完全等於錯誤的類名稱。在那種情況下,我會自己想到這一點。 – Ilja