From 65feaf8a7f5091f1c7c711d72ee84a44732182f6 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Wed, 25 Jan 2017 20:04:20 +0100 Subject: [PATCH] Fixed #4574 -- Removed multi-table inheritance auto created PK from serialize. --- rest_framework/utils/model_meta.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rest_framework/utils/model_meta.py b/rest_framework/utils/model_meta.py index 3e3e434e6..f8200c98f 100644 --- a/rest_framework/utils/model_meta.py +++ b/rest_framework/utils/model_meta.py @@ -76,7 +76,12 @@ def _get_forward_relationships(opts): Returns an `OrderedDict` of field names to `RelationInfo`. """ forward_relations = OrderedDict() - for field in [field for field in opts.fields if field.serialize and get_remote_field(field)]: + for field in [ + field for field in opts.fields + if field.serialize and get_remote_field(field) and not (field.primary_key and field.one_to_one) + # If the field is a OneToOneField and it's been marked as PK, then this + # is a multi-table inheritance auto created PK ('%_ptr'). + ]: forward_relations[field.name] = RelationInfo( model_field=field, related_model=get_related_model(field),