-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclasses.dot
195 lines (195 loc) · 39.5 KB
/
classes.dot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
digraph "classes" {
rankdir=BT
charset="utf-8"
"_functools.functools.partial" [color="black", fontcolor="black", label="{_functools.functools.partial|args : tuple\lfunc\lkeywords : dict\l|}", shape="record", style="solid"];
"core.models.Brand" [color="black", fontcolor="black", label="{core.models.Brand|created_at\lname\lupdated_at\l|}", shape="record", style="solid"];
"core.models.Category" [color="black", fontcolor="black", label="{core.models.Category|created_at\lname\lupdated_at\l|}", shape="record", style="solid"];
"core.models.Link" [color="black", fontcolor="black", label="{core.models.Link|code\lcreated_at\lproducts\lupdated_at\luser\l|}", shape="record", style="solid"];
"core.models.Manufacturer" [color="black", fontcolor="black", label="{core.models.Manufacturer|created_at\lname\lupdated_at\l|}", shape="record", style="solid"];
"core.models.Order" [color="black", fontcolor="black", label="{core.models.Order|address\lcity\lcode\lcomplete\lcountry\lcreated_at\lcustomer_name\lemail\lfirst_name\llast_name\lmanager_email\lmanager_revenue\lorder_price\ltransaction_id\lupdated_at\luser\lzip\l|}", shape="record", style="solid"];
"core.models.OrderItem" [color="black", fontcolor="black", label="{core.models.OrderItem|admin_revenue\lcreated_at\lmanager_revenue\lorder\lprice\lproduct_title\lquantity\lupdated_at\l|}", shape="record", style="solid"];
"core.models.Product" [color="black", fontcolor="black", label="{core.models.Product|brand\lbrand_name\lcategory\lcategory_name\lcreated_at\ldescription\ldiameter\lheight\limage\lmanufacturer\lmanufacturer_name\lnote\loem_part_number\lprice\ltitle\lupdated_at\lweight\lwidth\l|}", shape="record", style="solid"];
"core.models.User" [color="black", fontcolor="black", label="{core.models.User|REQUIRED_FIELDS : list\lUSERNAME_FIELD : str\lemail\lfirst_name\lis_manager\llast_name\lname\lobjects\lpassword\lrevenue\lusername : NoneType\l|}", shape="record", style="solid"];
"core.models.UserManager" [color="black", fontcolor="black", label="{core.models.UserManager|\l|create_superuser(email, password)\lcreate_user(email, password)\l}", shape="record", style="solid"];
"django.contrib.auth.base_user.AbstractBaseUser" [color="black", fontcolor="black", label="{django.contrib.auth.base_user.AbstractBaseUser|REQUIRED_FIELDS : list\lis_active : bool\lis_anonymous\lis_authenticated\llast_login\lpassword\lpassword : str, bytes\l|check_password(raw_password)\lclean()\lget_email_field_name()\lget_session_auth_hash()\lget_username()\lhas_usable_password()\lnatural_key()\lnormalize_username(username)\lsave()\lset_password(raw_password)\lset_unusable_password()\l}", shape="record", style="solid"];
"django.contrib.auth.base_user.BaseUserManager" [color="black", fontcolor="black", label="{django.contrib.auth.base_user.BaseUserManager|\l|get_by_natural_key(username)\lmake_random_password(length, allowed_chars)\lnormalize_email(email)\l}", shape="record", style="solid"];
"django.contrib.auth.models.AbstractUser" [color="black", fontcolor="black", label="{django.contrib.auth.models.AbstractUser|EMAIL_FIELD : str\lREQUIRED_FIELDS : list\lUSERNAME_FIELD : str\ldate_joined\lemail\lemail\lfirst_name\lis_active\lis_staff\llast_name\lobjects\lusername\lusername_validator\l|clean()\lemail_user(subject, message, from_email)\lget_full_name()\lget_short_name()\l}", shape="record", style="solid"];
"django.contrib.auth.models.PermissionsMixin" [color="black", fontcolor="black", label="{django.contrib.auth.models.PermissionsMixin|groups\lis_superuser\luser_permissions\l|get_all_permissions(obj)\lget_group_permissions(obj)\lget_user_permissions(obj)\lhas_module_perms(app_label)\lhas_perm(perm, obj)\lhas_perms(perm_list, obj)\l}", shape="record", style="solid"];
"django.contrib.auth.models.UserManager" [color="black", fontcolor="black", label="{django.contrib.auth.models.UserManager|use_in_migrations : bool\l|create_superuser(username, email, password)\lcreate_user(username, email, password)\lwith_perm(perm, is_active, include_superusers, backend, obj)\l}", shape="record", style="solid"];
"django.contrib.auth.validators.UnicodeUsernameValidator" [color="black", fontcolor="black", label="{django.contrib.auth.validators.UnicodeUsernameValidator|flags : int\lmessage\lregex : str\l|}", shape="record", style="solid"];
"django.core.validators.RegexValidator" [color="black", fontcolor="black", label="{django.core.validators.RegexValidator|code : NoneType\lcode : str\lflags : NoneType\lflags : int\linverse_match : NoneType\linverse_match : bool\lmessage\lmessage : NoneType\lregex : NoneType\lregex : str\l|}", shape="record", style="solid"];
"django.db.models.base.Model" [color="black", fontcolor="black", label="{django.db.models.base.Model|pk\l|check()\lclean()\lclean_fields(exclude)\ldate_error_message(lookup_type, field_name, unique_for)\ldelete(using, keep_parents)\lfrom_db(db, field_names, values)\lfull_clean(exclude, validate_unique)\lget_deferred_fields()\lprepare_database_save(field)\lrefresh_from_db(using, fields)\lsave(force_insert, force_update, using, update_fields)\lsave_base(raw, force_insert, force_update, using, update_fields)\lserializable_value(field_name)\lunique_error_message(model_class, unique_check)\lvalidate_unique(exclude)\l}", shape="record", style="solid"];
"django.db.models.base.ModelState" [color="black", fontcolor="black", label="{django.db.models.base.ModelState|adding : bool\ladding : bool\ldb : NoneType\ldb : NoneType, str\lfields_cache\l|}", shape="record", style="solid"];
"django.db.models.base.ModelStateFieldsCacheDescriptor" [color="black", fontcolor="black", label="{django.db.models.base.ModelStateFieldsCacheDescriptor|\l|}", shape="record", style="solid"];
"django.db.models.fields.BooleanField" [color="black", fontcolor="black", label="{django.db.models.fields.BooleanField|default_error_messages : dict\ldescription\lempty_strings_allowed : bool\l|formfield()\lget_internal_type()\lget_prep_value(value)\lto_python(value)\l}", shape="record", style="solid"];
"django.db.models.fields.CharField" [color="black", fontcolor="black", label="{django.db.models.fields.CharField|db_collation : NoneType\ldescription\l|cast_db_type(connection)\lcheck()\ldeconstruct()\lformfield()\lget_internal_type()\lget_prep_value(value)\lto_python(value)\l}", shape="record", style="solid"];
"django.db.models.fields.DateField" [color="black", fontcolor="black", label="{django.db.models.fields.DateField|auto_now : bool\lauto_now_add : bool\ldefault_error_messages : dict\ldescription\lempty_strings_allowed : bool\l|contribute_to_class(cls, name)\ldeconstruct()\lformfield()\lget_db_prep_value(value, connection, prepared)\lget_internal_type()\lget_prep_value(value)\lpre_save(model_instance, add)\lto_python(value)\lvalue_to_string(obj)\l}", shape="record", style="solid"];
"django.db.models.fields.DateTimeCheckMixin" [color="black", fontcolor="black", label="{django.db.models.fields.DateTimeCheckMixin|\l|check()\l}", shape="record", style="solid"];
"django.db.models.fields.DateTimeField" [color="black", fontcolor="black", label="{django.db.models.fields.DateTimeField|default_error_messages : dict\ldescription\lempty_strings_allowed : bool\l|formfield()\lget_db_prep_value(value, connection, prepared)\lget_internal_type()\lget_prep_value(value)\lpre_save(model_instance, add)\lto_python(value)\lvalue_to_string(obj)\l}", shape="record", style="solid"];
"django.db.models.fields.DecimalField" [color="black", fontcolor="black", label="{django.db.models.fields.DecimalField|decimal_places : NoneType\ldefault_error_messages : dict\ldescription\lempty_strings_allowed : bool\lmax_digits : NoneType\l|check()\lcontext()\ldeconstruct()\lformfield()\lget_db_prep_save(value, connection)\lget_internal_type()\lget_prep_value(value)\lto_python(value)\lvalidators()\l}", shape="record", style="solid"];
"django.db.models.fields.EmailField" [color="black", fontcolor="black", label="{django.db.models.fields.EmailField|default_validators : list\ldescription\l|deconstruct()\lformfield()\l}", shape="record", style="solid"];
"django.db.models.fields.Field" [color="black", fontcolor="black", label="{django.db.models.fields.Field|attname : NoneType\lauto_created : bool\lblank : bool\lchoices : NoneType, list\lcolumn : NoneType\lconcrete\lcreation_counter\ldb_column : NoneType\ldb_index : bool\ldb_returning\ldb_tablespace\ldefault\ldefault_error_messages : dict\ldefault_validators : list\ldescription\ldescriptor_class\leditable : bool\lempty_strings_allowed : bool\lempty_values : list\lerror_messages : dict\lflatchoices\lhelp_text : str\lhidden : bool\lis_relation\lmany_to_many : NoneType\lmany_to_one : NoneType\lmax_length : NoneType\lmodel\lname : NoneType\lnull : bool\lone_to_many : NoneType\lone_to_one : NoneType\lprimary_key : bool\lrelated_model : NoneType\lremote_field : NoneType\lserialize : bool\lsystem_check_deprecated_details : NoneType\lsystem_check_removed_details : NoneType\lunique\lunique_for_date : NoneType\lunique_for_month : NoneType\lunique_for_year : NoneType\lverbose_name : NoneType\l|cached_col()\lcast_db_type(connection)\lcheck()\lclean(value, model_instance)\lclone()\lcontribute_to_class(cls, name, private_only)\ldb_check(connection)\ldb_parameters(connection)\ldb_type(connection)\ldb_type_parameters(connection)\ldb_type_suffix(connection)\ldeconstruct()\lformfield(form_class, choices_form_class)\lget_attname()\lget_attname_column()\lget_choices(include_blank, blank_choice, limit_choices_to, ordering)\lget_col(alias, output_field)\lget_db_converters(connection)\lget_db_prep_save(value, connection)\lget_db_prep_value(value, connection, prepared)\lget_default()\lget_filter_kwargs_for_object(obj)\lget_internal_type()\lget_pk_value_on_save(instance)\lget_prep_value(value)\lhas_default()\lpre_save(model_instance, add)\lrel_db_type(connection)\lrun_validators(value)\lsave_form_data(instance, data)\lselect_format(compiler, sql, params)\lset_attributes_from_name(name)\lto_python(value)\lvalidate(value, model_instance)\lvalidators()\lvalue_from_object(obj)\lvalue_to_string(obj)\l}", shape="record", style="solid"];
"django.db.models.fields.IntegerField" [color="black", fontcolor="black", label="{django.db.models.fields.IntegerField|default_error_messages : dict\ldescription\lempty_strings_allowed : bool\l|check()\lformfield()\lget_internal_type()\lget_prep_value(value)\lto_python(value)\lvalidators()\l}", shape="record", style="solid"];
"django.db.models.fields.NOT_PROVIDED" [color="black", fontcolor="black", label="{django.db.models.fields.NOT_PROVIDED|\l|}", shape="record", style="solid"];
"django.db.models.fields.TextField" [color="black", fontcolor="black", label="{django.db.models.fields.TextField|db_collation : NoneType\ldescription\l|check()\ldeconstruct()\lformfield()\lget_internal_type()\lget_prep_value(value)\lto_python(value)\l}", shape="record", style="solid"];
"django.db.models.fields.mixins.FieldCacheMixin" [color="black", fontcolor="black", label="{django.db.models.fields.mixins.FieldCacheMixin|\l|delete_cached_value(instance)\lget_cache_name()\lget_cached_value(instance, default)\lis_cached(instance)\lset_cached_value(instance, value)\l}", shape="record", style="solid"];
"django.db.models.fields.related.ForeignKey" [color="black", fontcolor="black", label="{django.db.models.fields.related.ForeignKey|db_constraint : bool\ldefault_error_messages : dict\ldescription\ldescriptor_class\lempty_strings_allowed : bool\lmany_to_many : bool\lmany_to_one : bool\lone_to_many : bool\lone_to_one : bool\lrel_class\ltarget_field\l|check()\lcontribute_to_related_class(cls, related)\lconvert_empty_strings(value, expression, connection)\ldb_check(connection)\ldb_parameters(connection)\ldb_type(connection)\ldeconstruct()\lformfield()\lget_attname()\lget_attname_column()\lget_col(alias, output_field)\lget_db_converters(connection)\lget_db_prep_save(value, connection)\lget_db_prep_value(value, connection, prepared)\lget_default()\lget_prep_value(value)\lget_reverse_path_info(filtered_relation)\lresolve_related_fields()\lto_python(value)\lvalidate(value, model_instance)\l}", shape="record", style="solid"];
"django.db.models.fields.related.ForeignObject" [color="black", fontcolor="black", label="{django.db.models.fields.related.ForeignObject|forward_related_accessor_class\lfrom_fields\lmany_to_many : bool\lmany_to_one : bool\lone_to_many : bool\lone_to_one : bool\lrel_class\lrelated_accessor_class\lrequires_unique_target : bool\lswappable : bool\lto_fields\l|check()\lcontribute_to_class(cls, name, private_only)\lcontribute_to_related_class(cls, related)\ldeconstruct()\lforeign_related_fields()\lget_attname_column()\lget_extra_descriptor_filter(instance)\lget_extra_restriction(alias, related_alias)\lget_foreign_related_value(instance)\lget_instance_value_for_fields(instance, fields)\lget_joining_columns(reverse_join)\lget_local_related_value(instance)\lget_lookups()\lget_path_info(filtered_relation)\lget_reverse_joining_columns()\lget_reverse_path_info(filtered_relation)\llocal_related_fields()\lrelated_fields()\lresolve_related_fields()\lreverse_related_fields()\l}", shape="record", style="solid"];
"django.db.models.fields.related.ManyToManyField" [color="black", fontcolor="black", label="{django.db.models.fields.related.ManyToManyField|db_table : NoneType\ldescription\lhas_null_arg : bool\lm2m_column_name\lm2m_db_table\lm2m_field_name\lm2m_reverse_field_name\lm2m_reverse_name\lm2m_reverse_target_field_name\lm2m_target_field_name\lmany_to_many : bool\lmany_to_one : bool\lone_to_many : bool\lone_to_one : bool\lrel_class\lswappable : bool\l|check()\lcontribute_to_class(cls, name)\lcontribute_to_related_class(cls, related)\ldb_check(connection)\ldb_parameters(connection)\ldb_type(connection)\ldeconstruct()\lformfield()\lget_path_info(filtered_relation)\lget_reverse_path_info(filtered_relation)\lsave_form_data(instance, data)\lset_attributes_from_rel()\lvalue_from_object(obj)\l}", shape="record", style="solid"];
"django.db.models.fields.related.RelatedField" [color="black", fontcolor="black", label="{django.db.models.fields.related.RelatedField|many_to_many : bool\lmany_to_one : bool\lname\lone_to_many : bool\lone_to_one : bool\lopts\lswappable_setting\ltarget_field\lverbose_name\l|check()\lcontribute_to_class(cls, name, private_only)\ldb_type(connection)\ldeconstruct()\ldo_related_class(other, cls)\lformfield()\lget_cache_name()\lget_forward_related_filter(obj)\lget_limit_choices_to()\lget_reverse_related_filter(obj)\lrelated_model()\lrelated_query_name()\lset_attributes_from_rel()\l}", shape="record", style="solid"];
"django.db.models.fields.related_descriptors.ForeignKeyDeferredAttribute" [color="black", fontcolor="black", label="{django.db.models.fields.related_descriptors.ForeignKeyDeferredAttribute|\l|}", shape="record", style="solid"];
"django.db.models.fields.related_descriptors.ForwardManyToOneDescriptor" [color="black", fontcolor="black", label="{django.db.models.fields.related_descriptors.ForwardManyToOneDescriptor|field\l|RelatedObjectDoesNotExist()\lget_object(instance)\lget_prefetch_queryset(instances, queryset)\lget_queryset()\lis_cached(instance)\l}", shape="record", style="solid"];
"django.db.models.fields.related_descriptors.ReverseManyToOneDescriptor" [color="black", fontcolor="black", label="{django.db.models.fields.related_descriptors.ReverseManyToOneDescriptor|field\lrel\l|related_manager_cls()\l}", shape="record", style="solid"];
"django.db.models.fields.reverse_related.ForeignObjectRel" [color="black", fontcolor="black", label="{django.db.models.fields.reverse_related.ForeignObjectRel|auto_created : bool\lconcrete : bool\ldb_type\leditable : bool\lempty_strings_allowed : bool\lfield\lfield_name : NoneType\lidentity\lis_relation : bool\llimit_choices_to : NoneType, dict\lmodel\lmultiple : bool\lnull : bool\lon_delete : NoneType\lparent_link : bool\lrelated_name : NoneType\lrelated_query_name : NoneType\lremote_field\lsymmetrical : bool\ltarget_field\l|get_accessor_name(model)\lget_cache_name()\lget_choices(include_blank, blank_choice, limit_choices_to, ordering)\lget_extra_restriction(alias, related_alias)\lget_internal_type()\lget_joining_columns()\lget_lookup(lookup_name)\lget_path_info(filtered_relation)\lhidden()\lis_hidden()\lmany_to_many()\lmany_to_one()\lname()\lone_to_many()\lone_to_one()\lrelated_model()\lset_field_name()\l}", shape="record", style="solid"];
"django.db.models.fields.reverse_related.ManyToManyRel" [color="black", fontcolor="black", label="{django.db.models.fields.reverse_related.ManyToManyRel|db_constraint : bool\lidentity\lsymmetrical : bool\lthrough : NoneType\lthrough_fields : NoneType\l|get_related_field()\l}", shape="record", style="solid"];
"django.db.models.fields.reverse_related.ManyToOneRel" [color="black", fontcolor="black", label="{django.db.models.fields.reverse_related.ManyToOneRel|field_name\lidentity\l|get_related_field()\lset_field_name()\l}", shape="record", style="solid"];
"django.db.models.manager.Manager" [color="black", fontcolor="black", label="{django.db.models.manager.Manager|auto_created : bool\l|}", shape="record", style="solid"];
"django.db.models.query_utils.DeferredAttribute" [color="black", fontcolor="black", label="{django.db.models.query_utils.DeferredAttribute|field\l|}", shape="record", style="solid"];
"django.db.models.query_utils.RegisterLookupMixin" [color="black", fontcolor="black", label="{django.db.models.query_utils.RegisterLookupMixin|\l|get_lookup(lookup_name)\lget_lookups()\lget_transform(lookup_name)\lmerge_dicts(dicts)\lregister_lookup(lookup, lookup_name)\l}", shape="record", style="solid"];
"django.utils.functional.LazyObject" [color="black", fontcolor="black", label="{django.utils.functional.LazyObject|\l|}", shape="record", style="solid"];
"django.utils.functional.Promise" [color="black", fontcolor="black", label="{django.utils.functional.Promise|\l|}", shape="record", style="solid"];
"django.utils.functional.SimpleLazyObject" [color="black", fontcolor="black", label="{django.utils.functional.SimpleLazyObject|\l|}", shape="record", style="solid"];
"django.utils.functional.lazy.__proxy__" [color="black", fontcolor="black", label="{django.utils.functional.__proxy__|\l|}", shape="record", style="solid"];
"functools.partial" [color="black", fontcolor="black", label="{functools.partial|args : tuple\lfunc\lkeywords : dict\l|}", shape="record", style="solid"];
"core.models.Brand" -> "django.db.models.base.Model" [arrowhead="empty", arrowtail="none"];
"core.models.Category" -> "django.db.models.base.Model" [arrowhead="empty", arrowtail="none"];
"core.models.Link" -> "django.db.models.base.Model" [arrowhead="empty", arrowtail="none"];
"core.models.Manufacturer" -> "django.db.models.base.Model" [arrowhead="empty", arrowtail="none"];
"core.models.Order" -> "django.db.models.base.Model" [arrowhead="empty", arrowtail="none"];
"core.models.OrderItem" -> "django.db.models.base.Model" [arrowhead="empty", arrowtail="none"];
"core.models.Product" -> "django.db.models.base.Model" [arrowhead="empty", arrowtail="none"];
"core.models.User" -> "django.contrib.auth.models.AbstractUser" [arrowhead="empty", arrowtail="none"];
"core.models.UserManager" -> "django.contrib.auth.base_user.BaseUserManager" [arrowhead="empty", arrowtail="none"];
"django.contrib.auth.base_user.AbstractBaseUser" -> "django.db.models.base.Model" [arrowhead="empty", arrowtail="none"];
"django.contrib.auth.base_user.BaseUserManager" -> "django.db.models.manager.Manager" [arrowhead="empty", arrowtail="none"];
"django.contrib.auth.models.AbstractUser" -> "django.contrib.auth.base_user.AbstractBaseUser" [arrowhead="empty", arrowtail="none"];
"django.contrib.auth.models.AbstractUser" -> "django.contrib.auth.models.PermissionsMixin" [arrowhead="empty", arrowtail="none"];
"django.contrib.auth.models.PermissionsMixin" -> "django.db.models.base.Model" [arrowhead="empty", arrowtail="none"];
"django.contrib.auth.models.UserManager" -> "django.contrib.auth.base_user.BaseUserManager" [arrowhead="empty", arrowtail="none"];
"django.contrib.auth.validators.UnicodeUsernameValidator" -> "django.core.validators.RegexValidator" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.BooleanField" -> "django.db.models.fields.Field" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.CharField" -> "django.db.models.fields.Field" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.DateField" -> "django.db.models.fields.DateTimeCheckMixin" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.DateField" -> "django.db.models.fields.Field" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.DateTimeField" -> "django.db.models.fields.DateField" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.DecimalField" -> "django.db.models.fields.Field" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.EmailField" -> "django.db.models.fields.CharField" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.Field" -> "django.db.models.query_utils.RegisterLookupMixin" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.IntegerField" -> "django.db.models.fields.Field" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.TextField" -> "django.db.models.fields.Field" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.related.ForeignKey" -> "django.db.models.fields.related.ForeignObject" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.related.ForeignObject" -> "django.db.models.fields.related.RelatedField" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.related.ManyToManyField" -> "django.db.models.fields.related.RelatedField" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.related.RelatedField" -> "django.db.models.fields.Field" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.related.RelatedField" -> "django.db.models.fields.mixins.FieldCacheMixin" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.related_descriptors.ForeignKeyDeferredAttribute" -> "django.db.models.query_utils.DeferredAttribute" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.reverse_related.ForeignObjectRel" -> "django.db.models.fields.mixins.FieldCacheMixin" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.reverse_related.ManyToManyRel" -> "django.db.models.fields.reverse_related.ForeignObjectRel" [arrowhead="empty", arrowtail="none"];
"django.db.models.fields.reverse_related.ManyToOneRel" -> "django.db.models.fields.reverse_related.ForeignObjectRel" [arrowhead="empty", arrowtail="none"];
"django.utils.functional.SimpleLazyObject" -> "django.utils.functional.LazyObject" [arrowhead="empty", arrowtail="none"];
"django.utils.functional.lazy.__proxy__" -> "django.utils.functional.Promise" [arrowhead="empty", arrowtail="none"];
"_functools.functools.partial" -> "django.db.models.fields.related.ManyToManyField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="m2m_db_table", style="solid"];
"_functools.functools.partial" -> "django.db.models.fields.related.ManyToManyField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="m2m_column_name", style="solid"];
"_functools.functools.partial" -> "django.db.models.fields.related.ManyToManyField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="m2m_reverse_name", style="solid"];
"_functools.functools.partial" -> "django.db.models.fields.related.ManyToManyField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="m2m_field_name", style="solid"];
"_functools.functools.partial" -> "django.db.models.fields.related.ManyToManyField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="m2m_reverse_field_name", style="solid"];
"core.models.UserManager" -> "core.models.User" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="objects", style="solid"];
"django.contrib.auth.models.UserManager" -> "django.contrib.auth.models.AbstractUser" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="objects", style="solid"];
"django.contrib.auth.validators.UnicodeUsernameValidator" -> "django.contrib.auth.models.AbstractUser" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="username_validator", style="solid"];
"django.db.models.base.ModelState" -> "django.db.models.base.Model" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="_state", style="solid"];
"django.db.models.base.ModelStateFieldsCacheDescriptor" -> "django.db.models.base.ModelState" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="fields_cache", style="solid"];
"django.db.models.fields.BooleanField" -> "core.models.Order" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="complete", style="solid"];
"django.db.models.fields.BooleanField" -> "core.models.User" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="is_manager", style="solid"];
"django.db.models.fields.BooleanField" -> "django.contrib.auth.models.AbstractUser" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="is_staff", style="solid"];
"django.db.models.fields.BooleanField" -> "django.contrib.auth.models.AbstractUser" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="is_active", style="solid"];
"django.db.models.fields.BooleanField" -> "django.contrib.auth.models.PermissionsMixin" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="is_superuser", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Brand" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="name", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Category" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="name", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Link" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="code", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Manufacturer" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="name", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Order" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="transaction_id", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Order" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="code", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Order" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="manager_email", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Order" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="first_name", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Order" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="last_name", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Order" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="email", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Order" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="address", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Order" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="city", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Order" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="country", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Order" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="zip", style="solid"];
"django.db.models.fields.CharField" -> "core.models.OrderItem" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="product_title", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Product" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="oem_part_number", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Product" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="title", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Product" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="image", style="solid"];
"django.db.models.fields.CharField" -> "core.models.Product" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="note", style="solid"];
"django.db.models.fields.CharField" -> "core.models.User" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="first_name", style="solid"];
"django.db.models.fields.CharField" -> "core.models.User" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="last_name", style="solid"];
"django.db.models.fields.CharField" -> "core.models.User" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="email", style="solid"];
"django.db.models.fields.CharField" -> "core.models.User" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="password", style="solid"];
"django.db.models.fields.CharField" -> "django.contrib.auth.base_user.AbstractBaseUser" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="password", style="solid"];
"django.db.models.fields.CharField" -> "django.contrib.auth.models.AbstractUser" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="username", style="solid"];
"django.db.models.fields.CharField" -> "django.contrib.auth.models.AbstractUser" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="first_name", style="solid"];
"django.db.models.fields.CharField" -> "django.contrib.auth.models.AbstractUser" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="last_name", style="solid"];
"django.db.models.fields.DateTimeField" -> "core.models.Brand" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="created_at", style="solid"];
"django.db.models.fields.DateTimeField" -> "core.models.Brand" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="updated_at", style="solid"];
"django.db.models.fields.DateTimeField" -> "core.models.Category" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="created_at", style="solid"];
"django.db.models.fields.DateTimeField" -> "core.models.Category" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="updated_at", style="solid"];
"django.db.models.fields.DateTimeField" -> "core.models.Link" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="created_at", style="solid"];
"django.db.models.fields.DateTimeField" -> "core.models.Link" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="updated_at", style="solid"];
"django.db.models.fields.DateTimeField" -> "core.models.Manufacturer" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="created_at", style="solid"];
"django.db.models.fields.DateTimeField" -> "core.models.Manufacturer" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="updated_at", style="solid"];
"django.db.models.fields.DateTimeField" -> "core.models.Order" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="created_at", style="solid"];
"django.db.models.fields.DateTimeField" -> "core.models.Order" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="updated_at", style="solid"];
"django.db.models.fields.DateTimeField" -> "core.models.OrderItem" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="created_at", style="solid"];
"django.db.models.fields.DateTimeField" -> "core.models.OrderItem" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="updated_at", style="solid"];
"django.db.models.fields.DateTimeField" -> "core.models.Product" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="created_at", style="solid"];
"django.db.models.fields.DateTimeField" -> "core.models.Product" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="updated_at", style="solid"];
"django.db.models.fields.DateTimeField" -> "django.contrib.auth.base_user.AbstractBaseUser" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="last_login", style="solid"];
"django.db.models.fields.DateTimeField" -> "django.contrib.auth.models.AbstractUser" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="date_joined", style="solid"];
"django.db.models.fields.DecimalField" -> "core.models.OrderItem" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="price", style="solid"];
"django.db.models.fields.DecimalField" -> "core.models.OrderItem" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="admin_revenue", style="solid"];
"django.db.models.fields.DecimalField" -> "core.models.OrderItem" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="manager_revenue", style="solid"];
"django.db.models.fields.DecimalField" -> "core.models.Product" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="price", style="solid"];
"django.db.models.fields.DecimalField" -> "core.models.Product" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="diameter", style="solid"];
"django.db.models.fields.DecimalField" -> "core.models.Product" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="height", style="solid"];
"django.db.models.fields.DecimalField" -> "core.models.Product" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="width", style="solid"];
"django.db.models.fields.DecimalField" -> "core.models.Product" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="weight", style="solid"];
"django.db.models.fields.EmailField" -> "django.contrib.auth.models.AbstractUser" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="email", style="solid"];
"django.db.models.fields.IntegerField" -> "core.models.OrderItem" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="quantity", style="solid"];
"django.db.models.fields.NOT_PROVIDED" -> "django.db.models.fields.Field" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="default", style="solid"];
"django.db.models.fields.TextField" -> "core.models.Product" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="description", style="solid"];
"django.db.models.fields.related.ForeignKey" -> "core.models.Link" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="user", style="solid"];
"django.db.models.fields.related.ForeignKey" -> "core.models.Order" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="user", style="solid"];
"django.db.models.fields.related.ForeignKey" -> "core.models.OrderItem" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="order", style="solid"];
"django.db.models.fields.related.ForeignKey" -> "core.models.Product" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="manufacturer", style="solid"];
"django.db.models.fields.related.ForeignKey" -> "core.models.Product" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="brand", style="solid"];
"django.db.models.fields.related.ForeignKey" -> "core.models.Product" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="category", style="solid"];
"django.db.models.fields.related.ManyToManyField" -> "core.models.Link" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="products", style="solid"];
"django.db.models.fields.related.ManyToManyField" -> "django.contrib.auth.models.PermissionsMixin" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="groups", style="solid"];
"django.db.models.fields.related.ManyToManyField" -> "django.contrib.auth.models.PermissionsMixin" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="user_permissions", style="solid"];
"django.db.models.fields.related_descriptors.ForeignKeyDeferredAttribute" -> "django.db.models.fields.related.ForeignKey" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="descriptor_class", style="solid"];
"django.db.models.fields.related_descriptors.ForwardManyToOneDescriptor" -> "django.db.models.fields.related.ForeignObject" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="forward_related_accessor_class", style="solid"];
"django.db.models.fields.related_descriptors.ReverseManyToOneDescriptor" -> "django.db.models.fields.related.ForeignObject" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="related_accessor_class", style="solid"];
"django.db.models.fields.reverse_related.ForeignObjectRel" -> "django.db.models.fields.related.ForeignObject" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="rel_class", style="solid"];
"django.db.models.fields.reverse_related.ManyToManyRel" -> "django.db.models.fields.related.ManyToManyField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="rel_class", style="solid"];
"django.db.models.fields.reverse_related.ManyToOneRel" -> "django.db.models.fields.related.ForeignKey" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="rel_class", style="solid"];
"django.db.models.query_utils.DeferredAttribute" -> "django.db.models.fields.Field" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="descriptor_class", style="solid"];
"django.utils.functional.SimpleLazyObject" -> "django.core.validators.RegexValidator" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="regex", style="solid"];
"django.utils.functional.lazy.__proxy__" -> "django.contrib.auth.validators.UnicodeUsernameValidator" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="message", style="solid"];
"django.utils.functional.lazy.__proxy__" -> "django.core.validators.RegexValidator" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="message", style="solid"];
"django.utils.functional.lazy.__proxy__" -> "django.db.models.fields.BooleanField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="description", style="solid"];
"django.utils.functional.lazy.__proxy__" -> "django.db.models.fields.CharField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="description", style="solid"];
"django.utils.functional.lazy.__proxy__" -> "django.db.models.fields.DateField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="description", style="solid"];
"django.utils.functional.lazy.__proxy__" -> "django.db.models.fields.DateTimeField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="description", style="solid"];
"django.utils.functional.lazy.__proxy__" -> "django.db.models.fields.DecimalField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="description", style="solid"];
"django.utils.functional.lazy.__proxy__" -> "django.db.models.fields.EmailField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="description", style="solid"];
"django.utils.functional.lazy.__proxy__" -> "django.db.models.fields.IntegerField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="description", style="solid"];
"django.utils.functional.lazy.__proxy__" -> "django.db.models.fields.TextField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="description", style="solid"];
"django.utils.functional.lazy.__proxy__" -> "django.db.models.fields.related.ForeignKey" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="description", style="solid"];
"django.utils.functional.lazy.__proxy__" -> "django.db.models.fields.related.ManyToManyField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="description", style="solid"];
"functools.partial" -> "django.db.models.fields.related.ManyToManyField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="m2m_db_table", style="solid"];
"functools.partial" -> "django.db.models.fields.related.ManyToManyField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="m2m_column_name", style="solid"];
"functools.partial" -> "django.db.models.fields.related.ManyToManyField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="m2m_reverse_name", style="solid"];
"functools.partial" -> "django.db.models.fields.related.ManyToManyField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="m2m_field_name", style="solid"];
"functools.partial" -> "django.db.models.fields.related.ManyToManyField" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="m2m_reverse_field_name", style="solid"];
}