mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-04-26 12:03:44 +03:00
Improve comments
This commit is contained in:
parent
27c93c08d2
commit
09f2267601
|
@ -7,7 +7,6 @@ from django.core import validators
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db import DEFAULT_DB_ALIAS
|
from django.db import DEFAULT_DB_ALIAS
|
||||||
from django.db.models.related import RelatedObject
|
|
||||||
from django.utils.encoding import is_protected_type, smart_unicode
|
from django.utils.encoding import is_protected_type, smart_unicode
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from rest_framework.compat import parse_date, parse_datetime
|
from rest_framework.compat import parse_date, parse_datetime
|
||||||
|
@ -199,27 +198,23 @@ class RelatedField(Field):
|
||||||
|
|
||||||
class PrimaryKeyRelatedField(RelatedField):
|
class PrimaryKeyRelatedField(RelatedField):
|
||||||
"""
|
"""
|
||||||
Serializes a model related field or related manager to a pk value.
|
Serializes a related field or related object to a pk value.
|
||||||
"""
|
"""
|
||||||
# Note the we use ModelRelatedField's implementation, as we want to get the
|
|
||||||
# raw database value directly, since that won't involve another
|
|
||||||
# database lookup.
|
|
||||||
#
|
|
||||||
# An alternative implementation would simply be this...
|
|
||||||
#
|
|
||||||
# class PrimaryKeyRelatedField(RelatedField):
|
|
||||||
# def to_native(self, obj):
|
|
||||||
# return obj.pk
|
|
||||||
|
|
||||||
def to_native(self, pk):
|
def to_native(self, pk):
|
||||||
"""
|
"""
|
||||||
Simply returns the object's pk. You can subclass this method to
|
You can subclass this method to provide different serialization
|
||||||
provide different serialization behavior of the pk.
|
behavior based on the pk.
|
||||||
(For example returning a URL based on the model's pk.)
|
|
||||||
"""
|
"""
|
||||||
return pk
|
return pk
|
||||||
|
|
||||||
def field_to_native(self, obj, field_name):
|
def field_to_native(self, obj, field_name):
|
||||||
|
# This is only implemented for performance reasons
|
||||||
|
#
|
||||||
|
# We could leave the default `RelatedField.field_to_native()` in place,
|
||||||
|
# and inside just implement `to_native()` as `return obj.pk`
|
||||||
|
#
|
||||||
|
# That would involve an extra database lookup.
|
||||||
try:
|
try:
|
||||||
pk = obj.serializable_value(self.source or field_name)
|
pk = obj.serializable_value(self.source or field_name)
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
|
@ -235,6 +230,10 @@ class PrimaryKeyRelatedField(RelatedField):
|
||||||
|
|
||||||
|
|
||||||
class ManyPrimaryKeyRelatedField(PrimaryKeyRelatedField):
|
class ManyPrimaryKeyRelatedField(PrimaryKeyRelatedField):
|
||||||
|
"""
|
||||||
|
Serializes a to-many related field or related manager to a pk value.
|
||||||
|
"""
|
||||||
|
|
||||||
def field_to_native(self, obj, field_name):
|
def field_to_native(self, obj, field_name):
|
||||||
try:
|
try:
|
||||||
queryset = obj.serializable_value(self.source or field_name)
|
queryset = obj.serializable_value(self.source or field_name)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user