| 88 | |
| 89 | |
| 90 | class Options: |
| 91 | FORWARD_PROPERTIES = { |
| 92 | "fields", |
| 93 | "many_to_many", |
| 94 | "concrete_fields", |
| 95 | "local_concrete_fields", |
| 96 | "_non_pk_concrete_field_names", |
| 97 | "_reverse_one_to_one_field_names", |
| 98 | "_forward_fields_map", |
| 99 | "managers", |
| 100 | "managers_map", |
| 101 | "base_manager", |
| 102 | "default_manager", |
| 103 | "db_returning_fields", |
| 104 | "_property_names", |
| 105 | "pk_fields", |
| 106 | "total_unique_constraints", |
| 107 | "all_parents", |
| 108 | "swapped", |
| 109 | "verbose_name_raw", |
| 110 | } |
| 111 | REVERSE_PROPERTIES = {"related_objects", "fields_map", "_relation_tree"} |
| 112 | |
| 113 | default_apps = apps |
| 114 | |
| 115 | def __init__(self, meta, app_label=None): |
| 116 | self._get_fields_cache = {} |
| 117 | self.local_fields = [] |
| 118 | self.local_many_to_many = [] |
| 119 | self.private_fields = [] |
| 120 | self.local_managers = [] |
| 121 | self.base_manager_name = None |
| 122 | self.default_manager_name = None |
| 123 | self.model_name = None |
| 124 | self.verbose_name = None |
| 125 | self.verbose_name_plural = None |
| 126 | self.db_table = "" |
| 127 | self.db_table_comment = "" |
| 128 | self.ordering = [] |
| 129 | self._ordering_clash = False |
| 130 | self.indexes = [] |
| 131 | self.constraints = [] |
| 132 | self.unique_together = [] |
| 133 | self.select_on_save = False |
| 134 | self.default_permissions = ("add", "change", "delete", "view") |
| 135 | self.permissions = [] |
| 136 | self.object_name = None |
| 137 | self.app_label = app_label |
| 138 | self.get_latest_by = None |
| 139 | self.order_with_respect_to = None |
| 140 | self.db_tablespace = settings.DEFAULT_TABLESPACE |
| 141 | self.required_db_features = [] |
| 142 | self.required_db_vendor = None |
| 143 | self.meta = meta |
| 144 | self.pk = None |
| 145 | self.auto_field = None |
| 146 | self.abstract = False |
| 147 | self.managed = True |