mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-07 22:04:48 +03:00
Merge d3a30d40b3
into 53a356a380
This commit is contained in:
commit
01a73733b7
|
@ -202,3 +202,18 @@ def template_render(template, context=None, request=None):
|
|||
# backends template, e.g. django.template.backends.django.Template
|
||||
else:
|
||||
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
|
|
@ -12,6 +12,7 @@ from django.apps import apps
|
|||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.db import models
|
||||
from django.utils import six
|
||||
from rest_framework.compat import get_remote_field
|
||||
|
||||
FieldInfo = namedtuple('FieldResult', [
|
||||
'pk', # Model field instance
|
||||
|
@ -76,9 +77,10 @@ def get_field_info(model):
|
|||
|
||||
def _get_pk(opts):
|
||||
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.
|
||||
pk = pk.rel.to._meta.pk
|
||||
pk = remote_field.to._meta.pk
|
||||
|
||||
return pk
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user