如何从 Django 模型 Class 中获取 content_type?

How to obtain content_type from a Django Model Class?

我正在尝试获取 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 字符串设置为较低并直接查询 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