【问题标题】:Django first migration has one anonymous userDjango 第一次迁移有一个匿名用户
【发布时间】:2015-12-01 20:53:20
【问题描述】:

设置django项目时,第一次运行manage.py migrate,然后转到manage.py shell运行:

from users.models import User
users = User.objects.all()
users
[<User: AnonymousUser>]

我总是得到这个AnonymousUser。创建我的超级用户并检查管理页面后,我得到:

Django 是否出于特定目的创建了这个孤独的AnonymousUser,还是我配置错误?

【问题讨论】:

    标签: python django python-3.x model


    【解决方案1】:

    我对 django-guardian 有这个问题,这个应用程序会在第一次迁移时创建 AnonymousUser。

    文档说:

    GUARDIAN_GET_INIT_ANONYMOUS_USER 1.2 版中的新功能。 Guardian 支持匿名用户的对象级权限,但是在 我们的项目我们使用自定义用户模型,默认功能可能会失败。这可能导致 当监护人尝试在每次 syncdb 调用后创建匿名用户时出现问题。 使用 this 指向的函数检索将要创建的对象 环境。检索到后,将在该实例上调用 save 方法。 默认为“guardian.management.get_init_anonymous_user”。

    【讨论】:

      【解决方案2】:

      我绝不是这里的专家,但通过 django auth docs 看,似乎 django 创建了这个用户来处理用户可以选择不进行身份验证并仍然在某种程度上与应用程序交互的应用程序。

      如果当前用户没有登录,这个属性[request.user]会被设置为AnonymousUser的实例,否则就是User的实例。

      这就是你要找的吗?

      【讨论】:

      • 对了,我还没有在源代码上找到迁移的实现,但是在文档中看到这个还是很惊喜的。
      猜你喜欢
      • 2012-05-18
      • 2020-03-08
      • 2015-01-24
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      • 2021-09-22
      • 1970-01-01
      • 2017-01-21
      相关资源
      最近更新 更多