2017-09-17 6 views
0

リストアする方法、AnonymousUserを削除した(素晴らしいが、私はまだ、このような質問を発見していない!)Djangoは、私が

私はデシベルで私のユーザーの一部を削除し、そして偶然にもAnonymousUser -instance。 彼を元に戻すには? (まあ...政治的な正しさのために彼または彼女:

私は彼のインスタンスが必要ですか? (これまでのところ、私のサイトをすばやく閲覧することで、私は問題にぶつからなかった)。ところで、彼がいなければ何が問題になるだろうか?

しかし、AnonymousUser.objects -managerは作成されません。とにかくsave()は、the docsのように実装されていません。私はusersテーブルを削除して移行しますか?それが助けられるか、あるいは私は別の方法で進めることができますか?

どうもありがとう:)

答えて

1

Anonymous usersaveしたがって、それはデータベースに格納されていないdjango.contrib.auth.models.AnonymousUserのインスタンスであると認証バックエンドはセッション内の任意の認証されたユーザーを見つけていない場合、その場で作成され、これには実装されておらず、idは常にdoc状態としてNoneです。コメントの後

アップデートは

django-userenaは、オブジェクト権限ごとに管理するためにdjango-guardianを使用し、django-guardiansignals.post_migrate信号に耳を傾け、このユーザーautomaticallyを作成します。ですから、migrateコマンドを実行するだけで、いわゆる匿名ユーザーに戻ることができます(これはdjango.contrib.auth.models.AnonymousUserというインスタンスではありません)。これはユーザーモデルの実際のユーザーインスタンスです。

この動作を必要に応じて無効にするには、django-guardiandocsをオンにします。

+0

...以前はユーザーのリストにAnonymousUserが表示されていましたが、今はありません。 aaah、多分いくつかのパッケージ(userena?)が普通のユーザーを作成し、彼をAnonymousUserと呼んでいたでしょうか? - 非常に誤解を招く恐れがあります。まったくPythonicではありません。 – Ilja

+0

@Ilja更新された回答を確認してください。ありがとう! –

+0

ええ、あなたは正しいです!ご説明ありがとうございます。 Django-guardianの誤解を招くデフォルトの名前を間違ったクラス名と正確に等しくないように変更することを提案します。私はこの場合自分自身を考えていたでしょう。 – Ilja

関連する問題