This commit is contained in:
Asif Saifuddin Auvi 2016-06-02 13:37:23 +00:00
commit 01a73733b7
2 changed files with 19 additions and 2 deletions

View File

@ -202,3 +202,18 @@ def template_render(template, context=None, request=None):
# backends template, e.g. django.template.backends.django.Template # backends template, e.g. django.template.backends.django.Template
else: else:
return template.render(context, request=request) return template.render(context, request=request)
def get_remote_field(field):
"""
Django 1.9 removed usage of Rel objects, see
https://github.com/django/django/pull/4241
:param field: Field
:return: remote field
"""
from django.db.models import fields
if django.VERSION < (1, 9):
return field.rel
else:
return field.remote_field

View File

@ -12,6 +12,7 @@ from django.apps import apps
from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ImproperlyConfigured
from django.db import models from django.db import models
from django.utils import six from django.utils import six
from rest_framework.compat import get_remote_field
FieldInfo = namedtuple('FieldResult', [ FieldInfo = namedtuple('FieldResult', [
'pk', # Model field instance 'pk', # Model field instance
@ -76,9 +77,10 @@ def get_field_info(model):
def _get_pk(opts): def _get_pk(opts):
pk = opts.pk pk = opts.pk
while pk.rel and pk.rel.parent_link: remote_field = get_remote_field(pk)
while remote_field and remote_field.parent_link:
# If model is a child via multi-table inheritance, use parent's pk. # If model is a child via multi-table inheritance, use parent's pk.
pk = pk.rel.to._meta.pk pk = remote_field.to._meta.pk
return pk return pk