mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-22 17:47:04 +03:00
Added a possible fix
This commit is contained in:
parent
46b65d1647
commit
47a22a55ca
|
@ -13,7 +13,9 @@ from django.utils.six.moves.urllib import parse as urlparse
|
|||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from rest_framework.compat import OrderedDict
|
||||
from rest_framework.fields import Field, empty, get_attribute
|
||||
from rest_framework.fields import (
|
||||
Field, empty, get_attribute, is_simple_callable
|
||||
)
|
||||
from rest_framework.reverse import reverse
|
||||
from rest_framework.utils import html
|
||||
|
||||
|
@ -106,7 +108,12 @@ class RelatedField(Field):
|
|||
# Optimized case, return a mock object only containing the pk attribute.
|
||||
try:
|
||||
instance = get_attribute(instance, self.source_attrs[:-1])
|
||||
return PKOnlyObject(pk=instance.serializable_value(self.source_attrs[-1]))
|
||||
|
||||
value = instance.serializable_value(self.source_attrs[-1])
|
||||
if is_simple_callable(value):
|
||||
value = value().pk
|
||||
|
||||
return PKOnlyObject(pk=value)
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user