首页 > 其他分享 >内容类型框架-ContentType 模型

内容类型框架-ContentType 模型

时间:2022-12-13 19:00:33浏览次数:71  
标签:ContentType 框架 get models 模型 实例 model

 

参考Django官方文档

ContentTypeManager

classContentTypeManager

ContentType 还有一个自定义管理器, ContentTypeManager,它增加了以下方法:

clear_cache()

清除 ContentType 内部的缓存,用来跟踪已经创建了 ContentType 实例的模型。你可能永远都不需要自己调用这个方法,Django 会在需要的时候自动调用它。

get_for_id(id)

通过 ID 查找一个 ContentType。由于该方法与 get_for_model() 使用了相同的共享缓存,所以最好使用该方法,而不是通常的 ContentType.objects.get(pk=id)

get_for_model(model, for_concrete_model=True)

取一个模型类或一个模型的实例,并返回代表该模型的 ContentType 实例。for_concrete_model=False 允许获取代理模型的 ContentType 实例。

get_for_models(*models, for_concrete_models=True)

取一个数量不等的模型类,并返回一个将模型类映射到代表它们的 ContentType 实例的字典。for_concrete_models=False 允许获取代理模型的 ContentType 实例。

get_by_natural_key(app_label, model)

返回由给定的应用程序标签和模型名称唯一标识的 ContentType 实例。本方法的主要目的是允许 ContentType 对象在反序列化过程中通过 自然键 被引用。

当你知道需要使用一个 ContentType,但又不想麻烦地获取模型的元数据来执行手动查找时,这个 get_for_model() 方法特别有用:

>>> from django.contrib.auth.models import User
>>> ContentType.objects.get_for_model(User)
<ContentType: user>

标签:ContentType,框架,get,models,模型,实例,model
From: https://www.cnblogs.com/ldx-wsj/p/16979642.html

相关文章