Skip to content

Commit 1393573

Browse files
committed
Set pk_field from target_field in ModelSerializer
1 parent 601ef12 commit 1393573

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

rest_framework/serializers.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1296,6 +1296,10 @@ def build_relational_field(self, field_name, relation_info):
12961296
field_kwargs['slug_field'] = to_field
12971297
field_class = self.serializer_related_to_field
12981298

1299+
# `pk_field` is only valid for PrimaryKeyRelatedField
1300+
if not issubclass(field_class, PrimaryKeyRelatedField):
1301+
field_kwargs.pop('pk_field', None)
1302+
12991303
# `view_name` is only valid for hyperlinked relationships.
13001304
if not issubclass(field_class, HyperlinkedRelatedField):
13011305
field_kwargs.pop('view_name', None)

rest_framework/utils/field_mapping.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,8 @@ def get_relation_kwargs(field_name, relation_info):
265265
kwargs.pop('queryset', None)
266266
if model_field.null:
267267
kwargs['allow_null'] = True
268+
if isinstance(model_field.target_field, models.UUIDField):
269+
kwargs['pk_field'] = models.UUIDField()
268270
if kwargs.get('read_only', False):
269271
# If this field is read-only, then return early.
270272
# No further keyword arguments are valid.

0 commit comments

Comments
 (0)