Django 1.5:访问 models.py 中的自定义用户模型字段

2023-12-28

我正在开发 Django 1.5 项目,我有一个自定义用户模型(我们称之为CustomUser)。另一个应用程序(SomeApp)需要引用此自定义用户模型。为了ForeignKey等的目的,Django文档说使用

User = settings.AUTH_USER_MODEL 

但是,SomeApp.models 中的某些函数需要访问以前称为User.objects。但 User 现在是一个字符串而不是一个类,所以User.objects失败。另一种选择是

from django.contrib.auth import get_user_model
User = get_user_model()

这在其他模块中有效,但是当我在 SomeApp 的 models.py 中使用它时,Django 会引发错误:

ImproperlyConfigured("AUTH_USER_MODEL 指的是尚未安装的型号 '%s'" % settings.AUTH_USER_MODEL)

有任何想法吗?

编辑1 - 回溯:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "...\django-badger\badger\__init__.py", line 7, in <module>
    from badger.models import Badge, Award, Progress
  File "...\django-badger\badger\models.py", line 26, in <module>
    User = get_user_model()
  File "...\lib\site-packages\django\contrib\auth\__init__.py", line 127, in get_user_model
    raise ImproperlyConfigured("AUTH_USER_MODEL refers to model '%s' that has not been installed" % settings.AUTH_USER_MODEL)
ImproperlyConfigured: AUTH_USER_MODEL refers to model 'MyApp.AuthUser' that has not been installed

编辑 2 - INSTALLED_APPS 设置:

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'south',
'MyApp',   # this is where my user model is defined
'SomeApp', # I try to use get_user_model() in this app's models.py; doesn't work.
'social_auth',
)

我刚才遇到了同样的问题,这是我的 2 美分/解决方案。

如果您想在 models.py 中使用自定义用户模型,您将使用外键settings.AUTH_USER_MODEL对于模型方法,你必须使用get_user_model()但它必须是inside方法。由于循环导入,它在外部不起作用。

from django.conf import settings
from django.contrib.auth import get_user_model

class Event(models.Model):

    recipient = models.ForeignKey(settings.AUTH_USER_MODEL)
    ...

    def get_something(self):

        User = get_user_model()
        u = User.objects.get(id=...)
        ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 1.5:访问 models.py 中的自定义用户模型字段 的相关文章

随机推荐

  • Ruby 中的 HTML 解析器转换为 DOM

    Ruby 中是否有任何 HTML 解析器可以将 HTML 文档读入 DOM 树并将 HTML 标签表示为 DOM 元素 我知道 Nokogiri 但它不会将 HTML 解析为 DOM 树 尽管有你的评论 Nokogiri 是正确的选择 do
  • SignalR 是否支持发布/订阅消息传递范例?

    我想在网络场中的多个服务器之间使用发布 订阅消息传递来保持其本地 ASP NET 缓存同步 使用 SignalR 可以轻松完成此操作吗 如果可以的话我该怎么做 None
  • is_pagination 不适用于 django 通用视图

    我一直在我的几个页面中使用 django 内置分页 is pagination 他们都工作得很好 除了搜索页面外 分页应该仅根据过滤后的查询集显示 我已经检查了其他一些线程 但没有多大帮助 如何使用基于 Django 类的通用 ListVi
  • array_column 和 foreach,性能方面哪个更好?

    我很好奇 php 函数 array column 与常规 foreach 循环相比的性能 就我而言 我想将数据库表中的单列数据获取到数组中 我的查询结果 10k 到 50k 记录 所以我应该使用常规 foreach 循环还是 array c
  • 如何在 pyproject.toml 中指定“额外”/括号依赖项?

    我正在开发一个项目 该项目使用指定其依赖项Poetry https python poetry org docs pyproject and a pyproject toml https www python org dev peps pe
  • setuptools、easy_install 和自定义 pypi 服务器

    我有一个正在运行的自定义 pypi 服务器 我想知道如何将所有引用指向https pypi python org https pypi python org 从那里到我的自定义服务器 我希望能够涵盖用户调用的情况pip easy insta
  • 删除重复项并将其按行计数

    我想删除重复的条目 然后对它们进行计数以将它们显示在我的 php ROW 中的条目旁边 我已经尝试过这个
  • 从浏览器中删除cookie

    如何在asp net c 中从浏览器中删除cookie 就是这样 if Request Cookies MyCookie null HttpCookie myCookie new HttpCookie MyCookie myCookie E
  • 行尾有一个字母单词(对齐)

    我想知道如果文本行末尾有一个字母单词我能做什么 例如 Hello my name is John Smith and I am a freshman 如何将 I 移动到下一行 并调整整行 因为当我把 br 然后证明崩溃的合理性 这是jsfi
  • XCode自动生成注释?

    每次当我在 XCode 中创建一个新文件时 它都会在文件顶部做出一些注释 最近它发生了某种变化 我不知道为什么以及如何重置它 现在是这样的 Filename cpp Projectname Created by Name on Date C
  • 为什么 setMap(null) 不起作用 google 地图 api v3?

    我正在使用谷歌地图 API 3 9 在应用程序中 用户可以添加标记或删除标记 当用户单击地图时 将显示信息窗口 用户可以在其中输入名称 纬度 经度 然后单击保存图像 如下所示 google maps event addListener ma
  • Git:创建新分支并推送到远程的有效步骤

    我想出了步骤 但看起来很麻烦 采取bitbucket例如 假设我已经有一个名为prj 我从服务器端 bitbucket com 分支一个新项目 名为prj bz 从本地我添加添加远程git remote add prj bz https b
  • 在 SLURM 中运行没有顶级脚本的二进制文件

    在 SGE PBS 中 我可以像在本地一样向集群提交二进制可执行文件 例如 qsub b y cwd echo hello 将提交一个名为 echo 的作业 该作业将单词 hello 写入其输出文件 我如何向 SLURM 提交类似的工作 它
  • 删除所有行,从 /pattern/ 之后的两行开始

    假设我有一个文件如下 drink eat XXX pizza blunzn sushi 我想从文件中删除所有行 从模式后的第三行开始XXX 所以结果应该是这样的 drink eat XXX pizza blunzn 删除之后的所有行XXX很
  • Hibernate Criteria n+1 最大结果问题

    使用 hibernate ctiteria 我想选择一个对象及其关联的 oneToMany 对象列表 我想对此列表进行分页 以避免可怕的休眠 n 1 选择问题 这是一个可行的解决方案 需要 10 个父对象对数据库进行 11 次访问 Crit
  • PHP登录系统硬编码用户名和密码

    我必须做一个基本的登录系统来保护页面 并且我无法访问数据库 所以我将用户名和密码硬编码存储在 php 页面中 我的问题是 这个登录系统能抵御攻击吗 我需要它保持大约1个月 任何改进建议都会有所帮助 该代码不在 Laravel 中 即使它看起
  • Nuxt部署错误:服务器资源不可用

    为了在 ssr 模式下部署我们的 nuxt 网站 我们首先在 bitbucket 管道中构建和单元测试网站 如果测试成功 我们将构建文件从 bitbucket 服务器复制到我们的生产服务器并触发启动 问题是 Nuxt 文档没有说明服务器上需
  • 与同时使用 minmax_element 相比 min_element 和 max_element 是否有任何效率优势?

    std minmax element 返回一个对 其中包含一个到最小元素的迭代器作为第一个元素 一个到最大元素的迭代器作为第二个元素 std min element 返回一个迭代器到范围 first last 中的最小元素 std max
  • 如何向我的 Linq 选择添加唯一的行号?

    我有以下代码 public IEnumerable
  • Django 1.5:访问 models.py 中的自定义用户模型字段

    我正在开发 Django 1 5 项目 我有一个自定义用户模型 我们称之为CustomUser 另一个应用程序 SomeApp 需要引用此自定义用户模型 为了ForeignKey等的目的 Django文档说使用 User settings