Django包含一个contenttype应用,它可以追踪安装在你的Django项目里的所有的应用,并提供一个高层次的,通用的接口用于与你的模型进行交互
Contenttypes 的核心应用是ContentType 模型,存在于 django.contrib.contenttypes.models.ContentType。ContentType 的实例表示并存储你的项目当中安装的应用的信息,
并且每当新的模型安装时会自动创建新的 ContentType 实例。
Contenttypes 框架包含在django-admin startproject 创建的默认的INSTALLED_APPS 列表中,但如果你移除了它或者你手动创建 INSTALLED_APPS 列表,你可以通过添加
'django.contrib.contenttypes'到你的 INSTALLED_APPS 设置中来启用它。
每一个contenttype实例有两个字段,共同来唯一描述一个已经安装的模型
app_label:模型所在的应用名称,这个取自模型的app_label属性,并只包括应用的python导入路径的最后部分
model:模型的类的名称
from django.contrib.contenttypes.models import ContentType
user_type = ContentType.objects.get(app_label="auth",model="user")
print(user_type) <contenttypes:user>
user_type.model_class() <class 'django.contrib.auth.models.User'>
user_type.get(username="xxx") <user:xxx>
表结构:
表操作
增加:每次生成表的时候会自动创建
查找:
正向:
反向: