我正在尝试获取 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)
关于python - 如何从 Django 模型类获取 content_type?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64036343/