python - 如何从 Django 模型类获取 content_type?

标签 python django django-models content-management-system

我正在尝试获取 django models.Model 的 ContentType。不尝试从 ContentType 获取模型,这是我在文档中可以找到的全部内容。例如:

model_name = 'FooBar'
MyModel = apps.get_model('app_xyz', model_name)
MyModel
<class 'apps.app_xyz.models.FooBar'>

如何获取 MyModel 的 ContentType?我唯一能想到的就是将 model_name 字符串设置为 lower 并直接查询 ContentTypes:

ct = ContentType.objects.get(model=model_name.lower())

这看起来真的很脆弱,并且使用 lower() 有一种我不喜欢的代码味道。我查看了 FooBar 的方法、_methods 和 __methods,但无济于事。谢谢!

最佳答案

from django.contrib.auth.models import User
cc = ContentType.objects.get_for_model(User)

docs

关于python - 如何从 Django 模型类获取 content_type?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64036343/

相关文章:

python - 谷歌应用引擎 : new version doesn't appear

python - 使用 RESTful API 与 Django Admin 对比数据库

django - 以一种很好的方式将帖子从 tweepy 保存到 django 模型

django - TypeError : Direct assignment to the forward side of a many-to-many set is prohibited. 请改用 meeting.set()。 Django m2m 字段出错

python - 在 Dataframe 中的特定位置添加列

python - 如何使用 python 编写 VMS 守护进程?

python - 仅出于特定目的临时加载语言文件

python - GAE 软内存使用

Django 自定义登录使用自己的模型

django - 获取 request.POST 中键值的最简单方法