Skip to main content
 首页 » 编程设计

python之Django 模型中可用的隐式字段有哪些

2024年10月24日37Terrylee

Django 为 models.py 中的所有模型提供了一个默认的 id 字段。是否有以相同方式提供的任何其他字段?我在哪里可以得到名单?

在互联网上搜索对我没有帮助。

请您参考如下方法:

在数据库字段方面只有id(与pk 相同),但在类字段方面所有模型都将继承 Model 类,您可以在 django's source code on GitHub 上阅读它的代码.另一种快速了解它们的方法是运行 django shell 并检查 dir 是什么功能给你:

>>> from django.db import models 
>>> 
>>> class M(models.Model): 
>>>     pass 
>>> 
>>> m = M() 
>>> dir(m) 
 
['DoesNotExist', 'MultipleObjectsReturned', '__class__', '__delattr__', '__dict__', 
'__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', 
'__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', 
'__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', 
'__str__', '__subclasshook__', '__weakref__', '_base_manager', '_check_column_name_clashes', 
'_check_field_name_clashes', '_check_fields', '_check_id_field', '_check_index_together', 
'_check_local_fields', '_check_m2m_through_same_relationship', '_check_managers', '_check_model', 
'_check_ordering', '_check_swappable', '_check_unique_together', '_default_manager', 
'_deferred', '_do_insert', '_do_update', '_get_FIELD_display', '_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', '_save_parents', '_save_table', 
'_set_pk_val', '_state', 'check', 'clean', 'clean_fields', 'date_error_message', 
'delete', 'full_clean', 'id', 'objects', 'pk', 'prepare_database_save', 'save', 
'save_base', 'serializable_value', 'unique_error_message', 'validate_unique'] 

请注意,这些是方法和字段。