Added Django 1.7 support

pull/1889/merge
Karl Hobley 2015-11-19 14:06:01 +00:00 zatwierdzone przez Matt Westcott
rodzic eed5c60d72
commit 7b46e233f4
1 zmienionych plików z 16 dodań i 4 usunięć

Wyświetl plik

@ -1,3 +1,4 @@
import django
from django.db import models
from django.db.models.fields.related import RelatedField
from django.apps import apps
@ -167,9 +168,20 @@ class RelatedFields(object):
field = self.get_field(queryset.model)
if isinstance(field, RelatedField):
if field.many_to_one or field.one_to_one:
queryset = queryset.select_related(self.field_name)
elif field.one_to_many or field.many_to_many:
queryset = queryset.prefetch_related(self.field_name)
if django.VERSION >= (1, 8):
if field.many_to_one or field.one_to_one:
queryset = queryset.select_related(self.field_name)
elif field.one_to_many or field.many_to_many:
queryset = queryset.prefetch_related(self.field_name)
else:
from django.db.models.fields.related import ForeignKey
if isinstance(field, ForeignKey):
# select_related for ForeignKey and OneToOneField
queryset = queryset.select_related(self.field_name)
else:
# prefetch_related for anything else (ManyToManyField,
# reverse relations, tags)
queryset = queryset.prefetch_related(self.field_name)
return queryset