Django Model 类
方法
check() 用于检查模型的字段是否存在问题。
clean() 用于清理模型实例的数据,确保数据符合模型字段的规范。
clean_fields() 清理模型字段,确保所有字段都符合其验证要求。
get_constraints() 获取模型字段上的约束。
get_deferred_fields() 获取延迟加载的字段。
full_clean() 调用clean_fields,clean和validate_unique以确保模型实例的数据是合法的。
delete() 从数据库中删除模型实例。
refresh_from_db() 从数据库中重新加载模型实例的值。
save() 将模型实例保存到数据库。
save_base() 用于保存模型的基础方法。
serializable_value() 获取字段的序列化值。
validate_constraints() 验证模型字段上的约束。
validate_unique() 验证模型实例的唯一性约束。
属性
date_error_message 获取或设置日期字段的错误消息。
from_db 表示模型实例是否是从数据库中获取的。
id 通常用于存储数据库的主键。
objects 是Django ORM的Manager,用于与数据库进行交互,如查询、创建对象等。
pk 表示模型的主键,通常与id相同。
prepare_database_save 准备模型保存到数据库。
unique_error_message 获取或设置唯一性约束错误的消息。
异常
DoesNotExist 当尝试获取不存在的对象时抛出。
MultipleObjectsReturned 当查询返回多个对象时抛出。
特殊 List[Models] <绑定的外键名>_set
*_set[*] 返回与此模型实例关联的Choice对象的集合。
get_next_by_*() 获取按 * 排序的下一个对象。
get_previous_*() 获取按 * 排序的前一个对象。
魔术方法
__class__ 返回实例所属的类。
__delattr__ 用于删除属性。当使用 del 关键字删除属性时调用。
__dict__ 返回对象的属性和属性值的字典。
__dir__ 用于列出对象的所有属性和方法。
__doc__ 返回对象的文档字符串。
__eq__ 定义等于比较运算符(==)的行为。
__format__ 定义对象的格式化字符串表示。
__ge__ 定义大于等于比较运算符(>=)的行为。
__getattribute__ 在访问属性时调用,用于自定义属性访问逻辑。
__getstate__ 在对象被pickle序列化时调用,用于自定义序列化过程。
__gt__ 定义大于比较运算符(>)的行为。
__hash__ 定义对象的哈希值。
__init__ 初始化对象时调用,用于设置对象的初始状态。
__init_subclass__ 当子类被创建时调用。
__le__ 定义小于等于比较运算符(<=)的行为。
__lt__ 定义小于比较运算符(<)的行为。
__module__ 返回定义对象的模块名称。
__ne__ 定义不等于比较运算符(!=)的行为。
__new__ 在创建类的新实例时调用。
__reduce__ 用于自定义对象的pickle序列化过程。
__reduce_ex__ 用于自定义对象的pickle序列化过程,提供更多的灵活性。
__repr__ 定义对象的官方字符串表示。
__setattr__ 在尝试设置属性值时调用。
__setstate__ 在对象被pickle反序列化时调用,用于自定义反序列化过程。
__sizeof__ 返回对象的大小(以字节为单位)。
__str__ 定义对象的字符串表示,用于 print() 和 str() 函数。
__subclasshook__ 在判断一个类是否是该类的子类时调用。
__weakref__ 用于支持对象的弱引用。
内部方法(不常用)
_check_column_name_clashes 检查模型中是否有字段名与数据库列名冲突。
_check_constraints 检查模型字段上的约束。
_check_default_pk 检查模型的主键字段是否有默认值。
_check_field_name_clashes 检查模型中是否有字段名冲突。
_check_fields 检查模型字段的合法性。
_check_id_field 检查模型是否有名为 id 的字段。
_check_index_together 检查模型的 index_together 设置是否合法。
_check_indexes 检查模型索引的合法性。
_check_local_fields 检查模型的本地字段。
_check_long_column_names 检查模型字段名是否超过数据库列名的长度限制。
_check_m2m_through_same_relationship 检查多对多关系是否正确设置。
_check_managers 检查模型管理器的合法性。
_check_model 检查模型的合法性。
_check_model_name_db_lookup_clashes 检查模型名是否与数据库查询关键字冲突。
_check_ordering 检查模型的排序设置是否合法。
_check_property_name_related_field_accessor_clashes 检查模型属性名是否与相关字段访问器冲突。
_check_single_primary_key 确保模型只有一个主键。
_check_swappable 检查模型是否可以与其他模型交换。
_check_unique_together 检查模型的 unique_together 设置是否合法。
_do_insert 执行模型的数据库插入操作。
_do_update 执行模型的数据库更新操作。
_get_FIELD_display 获取模型字段的显示值。
_get_expr_references 获取表达式引用的字段。
_get_field_value_map 获取字段值映射。
_get_next_or_previous_by_FIELD 获取按特定字段排序的下一个或前一个对象。
_get_next_or_previous_in_order 获取模型实例在排序中的下一个或前一个对象。
_get_pk_val 获取模型的主键值。
_get_unique_checks 获取模型唯一性检查。
_meta 返回模型的元数据。
_perform_date_checks 执行日期字段的检查。
_perform_unique_checks 执行唯一性检查。
_prepare_related_fields_for_save 准备保存相关字段。
_save_parents 保存模型的父类。
_save_table 保存模型到数据库表。
_set_pk_val 设置模型的主键值。
_state 返回模型的内部状态管理对象。
评论