Django模型中可用的隐含字段是什么?

时间:2015-08-13 07:23:18

标签: python django django-models django-orm

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

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

1 个答案:

答案 0 :(得分:2)

就数据库字段而言,只有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']

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