mirror of
https://github.com/django/django.git
synced 2024-12-24 10:05:46 +00:00
Fixed #9775 -- Fixed an oversight from r9601 and allow direct attribute
lookup in the serializable_value() method. This means that abstract parents that are multi-table children of other models(no, really!!) now work again. git-svn-id: http://code.djangoproject.com/svn/django/trunk@9618 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
c006ef5746
commit
5e9c5de78a
@ -10,7 +10,7 @@ except NameError:
|
||||
|
||||
import django.db.models.manager # Imported to register signal handler.
|
||||
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned, FieldError
|
||||
from django.db.models.fields import AutoField
|
||||
from django.db.models.fields import AutoField, FieldDoesNotExist
|
||||
from django.db.models.fields.related import OneToOneRel, ManyToOneRel, OneToOneField
|
||||
from django.db.models.query import delete_objects, Q, CollectedObjects
|
||||
from django.db.models.options import Options
|
||||
@ -298,12 +298,19 @@ class Model(object):
|
||||
|
||||
def serializable_value(self, field_name):
|
||||
"""
|
||||
Returns the value of the field name for this instance. If the field
|
||||
is a foreign key, returns the id value, instead of the object.
|
||||
Returns the value of the field name for this instance. If the field is
|
||||
a foreign key, returns the id value, instead of the object. If there's
|
||||
no Field object with this name on the model, the model attribute's
|
||||
value is returned directly.
|
||||
|
||||
Used to serialize a field's value (in the serializer, or form output,
|
||||
for example).
|
||||
for example). Normally, you would just access the attribute directly
|
||||
and not use this method.
|
||||
"""
|
||||
field = self._meta.get_field_by_name(field_name)[0]
|
||||
try:
|
||||
field = self._meta.get_field_by_name(field_name)[0]
|
||||
except FieldDoesNotExist:
|
||||
return getattr(self, field_name)
|
||||
return getattr(self, field.attname)
|
||||
|
||||
def save(self, force_insert=False, force_update=False):
|
||||
|
Loading…
Reference in New Issue
Block a user