Django - 通过模型名称获取 ContentType 模型(通用关系)

2024-02-21

我现在正在思考这个问题一段时间

我正在创建一个聊天应用程序,在 chat.models 中指定了 Room 类,但是,Room 可以与我的项目中的任何内容相关,因为它在外键中使用通用关系。

有没有办法只知道模型名称就知道 Room 与哪个模型相关?

Like:

ctype = 'user'

related_to_user = Room.objects.filter(content_type=ctype)

我遇到的问题是,下面的代码在视图中:

doc = get_object_or_404(Document, id=id)
# get *or create* a chat room attached to this document
room = Room.objects.get_or_create(doc)

如果我不想使用文档模型,如果我想要一个与字符串关联的模型,一个可以是任何东西的字符串,而不必编写大量的 if 来获取特定字符串的特定模型。有没有办法仅通过“名称”找到模型?

Thanks


http://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#methods-on-contenttype-in​​stances http://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#methods-on-contenttype-instances

user_type = ContentType.objects.get(app_label="auth", model="user")
user_type = ContentType.objects.get(model="user")
# but this can throw an error if you have 2 models with the same name.

与 django 非常相似get_model

from django.db.models import get_model
user_model = get_model('auth', 'user')

准确地使用你的例子:

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

Django - 通过模型名称获取 ContentType 模型(通用关系) 的相关文章

  • python - 是否可以扩展 xml-rpc 可以序列化的事物集?

    我看到几个问题询问如何发送numpy ndarray通过 xml rpc 调用 这不能开箱即用 因为正如 xml rpc 中所述docs https docs python org 2 library xmlrpclib html 有一组固
  • 在python中将文本文件解析为列表

    我对 Python 完全陌生 我正在尝试读取包含单词和数字组合的 txt 文件 我可以很好地读取 txt 文件 但我正在努力将字符串转换为我可以使用的格式 import matplotlib pyplot as plt import num
  • 如何使用Python将WebP图像转换为Gif?

    我已经尝试过这个 from PIL import Image im Image open this webp im save that gif gif save all True 这给了我这个错误 类型错误 不支持的操作数类型 tuple
  • 带图像的简单 GUI [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我试图在简单的 GUI 上显示一些卡
  • 如何从 Dockerfile 安装 Python 3.7 和 Pip

    我正在尝试构建基于 Ubuntu 18 04 的自定义 Docker 映像 Ubuntu 预装了 Python 3 6 但我想 1 安装 Python 3 7 2 将其设置为默认 Python 版本 这样就可以使用python代替pytho
  • Python igraph:从图中删除顶点

    我正在使用安然电子邮件数据集 并尝试删除没有 enron com 的电子邮件地址 即我只想拥有安然电子邮件 当我尝试删除那些没有 enron com 的地址时 一些电子邮件由于某些原因被跳过 下面显示了一个小图 其中顶点是电子邮件地址 这是
  • 定义函数后对其进行修饰?

    I think答案是否定的 但我似乎找不到明确的说法 我有以下情况 def decorated function function functools wraps function def my function print Hello s
  • 如何使用 python urllib 在 HTTP/1.1 中保持活力

    现在我正在这样做 Python3 urllib url someurl headers HOST somehost Connection keep alive Accept Encoding gzip deflate opener urll
  • Python Kivy - 在本机网络浏览器中打开 url 的应用程序

    我尝试制作一个简单的应用程序 在单击 Screen One 上的按钮后 在 Kivy 中打开一个网页 我使用了这个主题 Python 在应用程序中直接显示网络浏览器 iframe https stackoverflow com questi
  • 具有多个元素的数组的真值是二义性错误吗? Python

    from numpy import from pylab import from math import def TentMap a x if x gt 0 and x lt 0 5 return 2 a x elif x gt 0 5 a
  • Django NoReverseMatch

    我有以下设置 landing pages views py urls py In urls py当我尝试访问时 我有以下内容 competition from django conf urls defaults import from dj
  • 将 Pandas 列中的列表拆分为单独的列

    这是我在 pandas 数据框中的 特征 列 Feature Cricket 82379 Kabaddi 255 Reality 4751 Cricket 15640 Wildlife 730 LiveTV 13 Football 4129
  • 如何列出 python PDB 中的当前行?

    在 perl 调试器中 如果重复列出离开当前行的代码段 可以通过输入命令返回到当前行 点 我无法使用 python PDB 模块找到任何类似的东西 如果我list如果我自己离开当前行并想再次查看它 似乎我必须记住当前正在执行的行号 对我来说
  • 将输入发送到 python 子进程而不等待结果

    我正在尝试为一段代码编写一些基本测试 该代码通常通过 stdin 无休止地接受输入 直到给出特定的退出命令 我想检查程序是否在给出一些输入字符串时崩溃 经过一段时间来考虑处理 但似乎无法弄清楚如何发送数据而不是陷入等待我不知道的输出关心 我
  • conda-env list / conda info --envs 如何查找环境?

    我一直在尝试 anaconda miniconda 因为我的用户使用随 miniconda 安装的结构生物学程序 并且作者都没有 A 考虑到可能存在其他 miniconda 应用程序 B 他们的程序将在多用户环境中使用 因此 使用 Arch
  • Pandas Dataframe:将包含列表的行扩展到多行,并为所有列提供所需的索引

    我在 pandas 数据框中有时间序列数据 索引为测量开始时的时间 列中包含以固定采样率记录的值列表 连续索引 列表中元素数量的差异 这是它的样子 Time A B Z 0 1 2 3 4 1 2 3 4 2 5 6 7 8 5 6 7 8
  • Airflow Python 单元测试?

    我想为我们的 DAG 添加一些单元测试 但找不到任何单元测试 有 DAG 单元测试框架吗 有一个端到端的测试框架存在 但我猜它已经死了 https issues apache org jira browse AIRFLOW 79 https
  • Flask WTForms 使用变量自动填充 StringField

    我有一个表格 我想用上一页收到的信息自动填充一些字段 但如果他们想调整它 它需要是可更改的 我正在为我的 SelectField 使用动态创建的列表 但添加 StringField 并不成功 请参阅下面的我的代码 forms py clas
  • 如何在sphinx中启用数学?

    我在用sphinx http sphinx pocoo org index html与pngmath http sphinx pocoo org ext math html module sphinx ext pngmath扩展来记录我的代
  • 异步和协程与任务队列

    我一直在阅读有关 python 3 中的 asyncio 模块的内容 以及更广泛地了解 python 中的协程的内容 但我不明白是什么让 asyncio 成为如此出色的工具 我的感觉是 你可以用协程做的所有事情 通过使用基于多处理模块 例如

随机推荐

  • VBA 将演示文稿保存为讲义 2x2 格式 Office 2007 中的 PDF

    我正在尝试使用 VBA 保存 PowerPoint 演示文稿 并且希望将其保存为讲义格式的 pdf 页面上包含 2x2 幻灯片 有人可以告诉我或指向我一个链接来告诉我如何做到这一点 我在谷歌上做了功课 但没找到 任何帮助 建议 提示将不胜感
  • 为什么字符串的字节大小比长度长? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 为什么会这
  • 如何从Google GAIA ID查找用户信息?

    我一直在为 Google 的 Takeout 服务开发 Hangouts json 解析器 该解析器从 json 文件中获取所有对话 附件和杂项信息 并将所有内容填充到数据库中 我已经完成了所有工作 但 json 文件提供的唯一信息是发送
  • Django 中的 python-social-auth 自定义重定向 url

    我在用python social auth与 Django 一起打包来管理 oauth 和 openID 登录 现在的问题是 我可以在 django 中指定一个重定向 urlsettings py 但在某些情况下 我希望用户被重定向到他启动
  • 如何使子目录中的cakePHP 2.x出现在根目录中(在htaccess中使用mod_rewrite)? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在开发一个位于子目录内的蛋糕应用程序 因为我需要与同一域上的另一个应用程序一起运行它 我希望由 cake 提供支持的页面看起来就像是顶级的 所以而
  • 在结构体中声明 int 数组

    在C中 我定义了struct见下文 并希望内联初始化它 结构体内部的字段和数组都不是foos初始化后会改变 第一个块中的代码工作正常 struct Foo int bar int some array typedef struct Foo
  • Supervisord - 在supervisord.conf中使用变量

    转移到使用监督者 http supervisord org 作为过程控制系统 我有一个LONG并在我的supervisord conf中重复ENVIRONMENT配置 为很多进程设置很多环境变量 我需要将其定义在一处并重用它 以保持配置干燥
  • 我正在尝试直接连接到 abfss(无需安装到 DBFS)并尝试使用 databricks 中的 open() 打开 json 文件

    我正在尝试直接连接到 abfss 无需安装到 DBFS 并尝试使用 databricks 中的 open 方法打开 json 文件 json file open abfss dfs core windows net test json da
  • 非 ASCII 字符声明

    我想存储一个字符 以便将其与其他字符进行比较 如果我像这样声明变量 char c 一切正常 但我收到这些警告 warning multi character character constant Wmultichar char c ii c
  • 将无符号类型写入 Netty ChannelBuffer

    Netty 的 ChannelBuffer 类提供了从 ChannelBuffer 读取无符号类型的便捷方法 但是似乎没有任何等效的方法用于将无符号类型写入 ChannelBuffer 我觉得我一定错过了什么 推荐的方法是什么 例如将无符号
  • 将文件夹拆分为具有一定大小的较小文件夹

    我试图将一个文件夹划分为最大大小为 8 GB 的文件夹 起始文件夹 Folder 1 2KB file 2GB file 7GB file Folder 2 1GB file 5 6GB file Folder 3 8GB file 我想把
  • 在面向 iOS 7 的项目中导入 Alamofire

    我检查了新的 Alamofire 安装步骤 由于我需要针对 iOS 7 0 我想知道是否导入Alamofire swift是否足以使其发挥作用 为什么文档指出将函数包装在Struct Alamofire 是否需要调用命名空间中的函数 在这种
  • SQL 将数据从临时表插入到另外两个表中

    我遇到过这样的情况 将 CSV 上传到我的应用程序 并且每一行基本上都需要放入数据库中 我读取每一行并构建一个数据表 然后 SqlBulkCopy 该表到临时表 暂存表如下所示 UserID GroupID FirstName LastNa
  • 确定日期开始的时间

    假设我想创建一个每日计划表 并且我想将一天分为 15 分钟的部分 容易 对吧 就从午夜开始 然后 错了 在美洲 圣保罗 由于夏令时的变化 每年的某一天从 01 00 开始 给定一个时区和一个日期 如何找到一天开始的纪元时间 我的第一个想法是
  • VB.Net - AssemblyFileVersion 和 AssemblyFileVersionAttribute 以及 AssemblyVersion 和 AssemblyVersionAttribute 之间有什么区别

    我继承了 VB Net 代码库 该代码库是 VB 2005 并升级到 VB 2008 其中包含大约 100 个项目 我正在尝试重新版本所有组件 但发现某些 AssemblyInfo vb 文件具有AssemblyFileVersion条目
  • 如何使 Angular ui 网格最初展开所有行?

    我正在使用 ui 网格来显示数据列表 并且我正在尝试最初展开所有行 我试图在 onRegisterApi 事件中执行此操作 scope GridOptions data properties columnDefs name Full Add
  • 如何将列表中的所有元素划分在一起

    例如 a 1 2 3 4 5 6 我想要做 1 2 3 4 5 6 我尝试过使用operator div函数 但似乎没有给出正确的结果 顺便说一句 我对 python 还很陌生 您可以使用reduce https docs python o
  • 动态“case_when”允许不同数量的条件和条件本身

    我正在寻找一种动态方法来指定一些 条件参数 然后将其提供给case when操作或其他更适合该问题的操作 我的目标是将条件规范与 case when 调用分开 例如这样用户只需在文本文件或 R 中的列表中输入条件 然后我将获取该信息并将其提
  • 防止图像缓存在浏览器中

    我有一个 浏览图片 功能 其中有缩略图 当用户单击它时它会展开 现在 这两个图像都存储在不同大小的单独虚拟目录中 较大的是 200 200 px 当我点击放大时 它仍然只显示较小的图像 而不是 200 200 的图像 您可以将随机 URL
  • Django - 通过模型名称获取 ContentType 模型(通用关系)

    我现在正在思考这个问题一段时间 我正在创建一个聊天应用程序 在 chat models 中指定了 Room 类 但是 Room 可以与我的项目中的任何内容相关 因为它在外键中使用通用关系 有没有办法只知道模型名称就知道 Room 与哪个模型