MCPcopy
hub / github.com/django/django / _get_related_models

Function _get_related_models

django/db/migrations/state.py:34–55  ·  view source on GitHub ↗

Return all models that have a direct relationship to the given model.

(m)

Source from the content-addressed store, hash-verified

32
33
34def _get_related_models(m):
35 """Return all models that have a direct relationship to the given model."""
36 related_models = [
37 subclass
38 for subclass in m.__subclasses__()
39 if issubclass(subclass, models.Model)
40 ]
41 related_fields_models = set()
42 for f in m._meta.get_fields(include_parents=True, include_hidden=True):
43 if (
44 f.is_relation
45 and f.related_model is not None
46 and not isinstance(f.related_model, str)
47 ):
48 related_fields_models.add(f.model)
49 related_models.append(f.related_model)
50 # Reverse accessors of foreign keys to proxy models are attached to their
51 # concrete proxied model.
52 opts = m._meta
53 if opts.proxy and m in related_fields_models:
54 related_models.append(opts.concrete_model)
55 return related_models
56
57
58def get_related_models_tuples(model):

Callers 2

Calls 3

get_fieldsMethod · 0.45
addMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected