2017-09-17 58 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