13
13
from django .db import models
14
14
from django .utils import six
15
15
16
+ from rest_framework .compat import (
17
+ get_all_related_objects , get_all_related_many_to_many_objects
18
+ )
19
+
16
20
FieldInfo = namedtuple ('FieldResult' , [
17
21
'pk' , # Model field instance
18
22
'fields' , # Dict of field name -> model field instance
@@ -126,15 +130,7 @@ def _get_reverse_relationships(opts):
126
130
# See: https://code.djangoproject.com/ticket/24208
127
131
128
132
reverse_relations = OrderedDict ()
129
-
130
- # The backward implementation can be found in the Django Documentation
131
- # See: https://docs.djangoproject.com/en/1.9/ref/models/meta/#migrating-from-the-old-api
132
- related_objects = [
133
- f for f in opts .get_fields ()
134
- if (f .one_to_many or f .one_to_one ) and f .auto_created
135
- ]
136
-
137
- for relation in related_objects :
133
+ for relation in get_all_related_objects (opts ):
138
134
accessor_name = relation .get_accessor_name ()
139
135
related = getattr (relation , 'related_model' , relation .model )
140
136
reverse_relations [accessor_name ] = RelationInfo (
@@ -144,15 +140,8 @@ def _get_reverse_relationships(opts):
144
140
has_through_model = False
145
141
)
146
142
147
- # The backward implementation can be found in the Django Documentation
148
- # See: https://docs.djangoproject.com/en/1.9/ref/models/meta/#migrating-from-the-old-api
149
- all_related_to_many_objects = [
150
- f for f in opts .get_fields (include_hidden = True )
151
- if f .many_to_many and f .auto_created
152
- ]
153
-
154
143
# Deal with reverse many-to-many relationships.
155
- for relation in all_related_to_many_objects :
144
+ for relation in get_all_related_many_to_many_objects ( opts ) :
156
145
accessor_name = relation .get_accessor_name ()
157
146
related = getattr (relation , 'related_model' , relation .model )
158
147
reverse_relations [accessor_name ] = RelationInfo (
0 commit comments