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
|
# 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
|
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user