Django 1.5 自定义用户模型 - 信号限制

2024-01-06

写的是在文档中 https://docs.djangoproject.com/en/1.5/topics/auth/customizing/#custom-users-and-signals that:

自定义用户模型的另一个限制是您不能使用 django.contrib.auth.get_user_model() 作为信号处理程序的发送者或目标。相反,您必须使用生成的用户模型注册处理程序。有关注册发送信号的更多信息,请参阅信号。

我想这意味着你可以执行以下操作:

from django.contrib.auth import get_user_model

User = get_user_model()

@receiver(post_save, sender=User)
def user_saved(sender=None, instance=None, **kwargs):
    # something

不是吗?我只是想知道我是否理解得很好(我不明白为什么他们说这是一个“限制”,但无论如何,只是想检查一下)。


这是因为在创建信号时该对象尚未“安装”,因此 get_user_model() 无法找到附加信号处理程序所需的对象。

See this bug https://code.djangoproject.com/ticket/19218了解如何发现该问题以及问题所在的详细信息。

你的例子不起作用,因为get_user_model()由于这个原因,调用会失败。目前,使信号处理程序与自定义 User 类一起使用的唯一方法是直接命名它,而不使用get_user_model(), eg

@receiver(post_save, sender=myapp.MyUserModel) # can't use get_user_model() here
def user_saved(sender=None, instance=None, **kwargs):
    # something

你的编码风格也可以做一些工作:当你运行时User = get_user_model(),这会创建一个名为的变量User其值设置为结果get_user_model()函数调用。 Python 约定(以及大多数其他语言的约定)是普通变量以小写字母开头,类以大写字母开头。

So user = get_user_model()然后使用user稍后的变量对于任何阅读你的代码的人来说都会更有意义,并且有助于避免将来的混乱。

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

Django 1.5 自定义用户模型 - 信号限制 的相关文章

  • 我怎样才能更多地了解Python的内部原理? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我使用Python编程已经有半年多了 我对Python内部更感兴趣 而不是使用Python开发应用程序
  • Python模块可以访问英语词典,包括单词的定义[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 python 模块 它可以帮助我从英语词典中获取单词的定义 当然有enchant 这可以帮助我检查该单词是否存在于英语中
  • Argparse nargs="+" 正在吃位置参数

    这是我的解析器配置的一小部分 parser add argument infile help The file to be imported type argparse FileType r default sys stdin parser
  • 如何在 pytest 中将单元测试和集成测试分开

    根据维基百科 https en wikipedia org wiki Unit testing Description和各种articles https techbeacon com devops 6 best practices inte
  • Pandas 中允许重复列

    我将一个大的 CSV 包含股票财务数据 文件分割成更小的块 CSV 文件的格式不同 像 Excel 数据透视表之类的东西 第一列的前几行包含一些标题 公司名称 ID 等在以下列中重复 因为一家公司有多个属性 而不是一家公司只有一栏 在前几行
  • 填充两个函数之间的区域

    import matplotlib pyplot as plt import numpy as np def domain x np arange 0 10 0 001 f1 lambda x 2 x x 2 0 5 plt plot x
  • 使用 Python pandas 计算调整后的成本基础(股票买入/卖出的投资组合分析)

    我正在尝试对我的交易进行投资组合分析 并尝试计算调整后的成本基础价格 我几乎尝试了一切 但似乎没有任何效果 我能够计算调整后的数量 但无法获得调整后的购买价格有人可以帮忙吗 这是示例交易日志原始数据 import pandas as pd
  • 更改 `base_compiledir` 以将编译后的文件保存在另一个目录中

    theano base compiledir指编译后的文件存放的目录 有没有办法可以永久设置theano base compiledir到不同的位置 也许通过修改一些内部 Theano 文件的内容 http deeplearning net
  • 如何通过在 Python 3.x 上按键来启动和中断循环

    我有这段代码 当按下 P 键时会中断循环 但除非我按下非 P 键 否则循环不会工作 def main openGame while True purchase imageGrab if a sum gt 1200 fleaButton ti
  • 对图像块进行多重处理

    我有一个函数必须循环遍历图像的各个像素并计算一些几何形状 此函数需要很长时间才能运行 在 24 兆像素图像上大约需要 5 小时 但似乎应该很容易在多个内核上并行运行 然而 我一生都找不到一个有据可查 解释充分的例子来使用 Multiproc
  • 按元组分隔符拆分列表

    我有清单 print L I WW am XX newbie YY ZZ You WW are XX cool YY ZZ 我想用分隔符将列表拆分为子列表 ZZ print new L I WW am XX newbie YY ZZ You
  • Seaborn Pairplot 图例不显示颜色

    我一直在学习如何在Python中使用seaborn和pairplot 这里的一切似乎都工作正常 但由于某种原因 图例不会显示相关的颜色 我无法找到解决方案 因此如果有人有任何建议 请告诉我 x sns pairplot stats2 hue
  • Pandas 根据 diff 列形成簇

    我正在尝试使用 Pandas 根据表示时间 以秒为单位 的列中的差异来消除数据框中的一些接近重复项 例如 import pandas as pd numpy as np df pd DataFrame 1200 1201 1233 1555
  • 如何在 python 中没有 csv.reader 迭代器的情况下解析单行 csv 字符串?

    我有一个 CSV 文件 需要重新排列和重新编码 我想跑 line line decode windows 1250 encode utf 8 在由 CSV 读取器解析和分割之前的每一行 或者我想自己迭代行 运行重新编码 并仅使用单行解析表单
  • 创建嵌套字典单行

    您好 我有三个列表 我想使用一行创建一个三级嵌套字典 i e l1 a b l2 1 2 3 l3 d e 我想创建以下嵌套字典 nd a 1 d 0 e 0 2 d 0 e 0 3 d 0 e 0 b a 1 d 0 e 0 2 d 0
  • mac osx 10.8 上的初学者 python

    我正在学习编程 并且一直在使用 Ruby 和 ROR 但我觉得我更喜欢 Python 语言来学习编程 虽然我看到了 Ruby 和 Rails 的优点 但我觉得我需要一种更容易学习编程概念的语言 因此是 Python 但是 我似乎找不到适用于
  • 默认情况下,Keras 自定义层参数是不可训练的吗?

    我在 Keras 中构建了一个简单的自定义层 并惊讶地发现参数默认情况下未设置为可训练 我可以通过显式设置可训练属性来使其工作 我无法通过查看文档或代码来解释为什么会这样 这是应该的样子还是我做错了什么导致默认情况下参数不可训练 代码 im
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel
  • 字典和数组作为类变量与实例变量

    这是赚取积分的简单方法 请解释以下内容 class C a b 0 c def init self self x def d self k v self x k v self a k v self b v self c append v d
  • 如何读取Python字节码?

    我很难理解 Python 的字节码及其dis module import dis def func x 1 dis dis func 上述代码在解释器中输入时会产生以下输出 0 LOAD CONST 1 1 3 STORE FAST 0 x

随机推荐

  • 如何以集群模式运行docker redis?

    我启动了我的 redis docker 容器 docker run privileged true p 6379 6379 name TestRedis d redis 当我尝试在集群模式下从 Spring Redis 使用它时 出现错误
  • 如何从 JavaScript Promise 中获取价值?

    我有一个 userBalance 承诺对象 具有以下值 gt userBalance Promise 100000000000000000 domain Domain domain null events removeListener Fu
  • 如何使用 python 获取地理 TIFF 图像

    今天我遇到了麻烦 因为我第一次必须使用 TIFF 文件 并且遇到了错误 我正在尝试获取具有欧洲污染剂值的栅格 因此我对保持图像的高分辨率没有兴趣 但只是为了保留数据 我可以操纵图像 我的代码很简单 from future import pr
  • 如何淡出文本、更改文本以及淡入文本?

    我在数据模板中使用 TextBlock 作为数据网格中的单元格 我有一个要求 当单元格的值发生变化时 文本应该 更改前淡出 值应该改变 再次淡入 目前 我使用 TargetUpdated RoutedEvent 触发动画 使文本消失然后再回
  • Laravel 4:to_array() 在哪里?

    伙计 这真是令人沮丧 在 Laravel 4 中 使用 Eloquent 可以实现以下效果 var dump Worker find 1 但如果我尝试使用to array 它崩溃了 var dump Worker find 1 gt to
  • ffmpeg 可以将音频从原始 PCM 转换为 WAV 吗?

    我可以将 wav 文件转换为 pcm ffmpeg i file wav f s16le acodec pcm s16le file pcm 我怎样才能恢复这个操作 wav 容器只是向原始 PCM 数据添加一个简单的标头 标头包括格式 采样
  • Django 中的单表继承

    Django 中是否明确支持单表继承 据我所知 该功能仍在开发和争论中 是否有我可以同时使用的库 黑客来捕获基本行为 我有一个混合不同对象的层次结构 具有 Employee 类 员工类型的子类和 manager id parent id 的
  • JPQL:查询多列时,什么样的对象包含结果列表?

    我正在尝试在 PHP Co 中做一些简单的事情 选择 COUNT x 作为 numItems AVG y 作为平均值 FROM Z 在 PHP 中 我会得到一个像 numItems 0 average 0 这样的简单数组 我可以像这样使用它
  • “找不到文件... bin\roslyn\csc.exe”[重复]

    这个问题在这里已经有答案了 In Visual Studio 2017 when hitting Ctrl F5 to run my ASP NET Framework Web API server I get Could not find
  • Perl 对数组引用的数组进行排序

    我对 Perl 比较陌生 我有一个名为 TransRef 的数组的引用 其中包含对数组的引用 我的目标是编写一个子程序 它将 TransRef 参数作为唯一参数 按第二个元素 字符串 对底层数组的引用进行排序 并将输出设置回 TransRe
  • for 循环和 for-each 循环之间有性能差异吗?

    以下两个循环之间的性能差异是什么 如果有 for Object o objectArrayList o DoSomething and for int i 0 i
  • 如何在 Apollo 客户端中使用没有 JSX 组件的 client.query?

    我正在尝试使用 React 在 Apollo 客户端中进行查询 而不返回 JSX 组件 只是一个对象 data对 Apollo 服务器进行公共查询时收到的对象 我尝试使用
  • C++11 元组性能

    我只是想通过使用使我的代码更加通用std tuple在很多情况下包括单个元素 我的意思是例如tuple
  • 如何在python中为一个if语句设置多个条件[重复]

    这个问题在这里已经有答案了 所以我正在 python 3 1 5 中编写一些代码 需要有多个条件才能发生某事 例子 def example arg1 arg2 arg3 if arg1 1 if arg2 2 if arg3 3 print
  • 以编程方式设置单选按钮的自定义绘图

    我正在 Android 中开发一个基本的绘画应用程序 但我似乎无法以编程方式为我的单选按钮设置自定义绘图 这些单选按钮由LayerDrawable与一个白色的ColorDrawable对于边框和插入黄色 或任何颜色 ColorDrawabl
  • 每种应用的样式都会发生一次回流吗?

    当我在 JavaScript 中执行此操作时 element style width 100px element style height 100px 我说文档中有 2 次回流对吗 如果我这样做 element setAttribute s
  • UICollectionViewCell 注册类失败,但注册笔尖有效

    创建自定义UICollectionViewCell for my UICollectionViewController 它通过注册笔尖来工作 但是 无法按班级注册 使用 registerClass 失败 按类注册似乎是正确的 它可以构建 但
  • 计算Excel行中的连续条纹

    我正在尝试计算 2 个值 当前连续和长期连续 每条记录位于 1 行并包含名称和值 每列的值都在 1 到 200 之间 例子 John Doe 14 16 25 18 40 65 101 85 14 19 18 9 3 Jane Doe 24
  • NavigationView 的自定义后退按钮文本

    如何更改后退按钮文本NavigationView当一个新的View被推 默认显示 返回 但我想将其更改为其他内容 目前在 SwiftUI 中可以实现吗 完整代码 struct SampleDetails View Environment p
  • Django 1.5 自定义用户模型 - 信号限制

    写的是在文档中 https docs djangoproject com en 1 5 topics auth customizing custom users and signals that 自定义用户模型的另一个限制是您不能使用 dj