Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions rest_framework/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -1527,18 +1527,20 @@ def get_uniqueness_extra_kwargs(self, field_names, declared_fields, extra_kwargs
default = empty

if unique_constraint_name in model_fields:
# The corresponding field is present in the serializer
if default is empty:
uniqueness_extra_kwargs[unique_constraint_name] = {'required': True}
if getattr(unique_constraint_field, "blank", False):
uniqueness_extra_kwargs[unique_constraint_name] = {
"required": False,
"allow_blank": True,
}
else:
uniqueness_extra_kwargs[unique_constraint_name] = {"required": True}
else:
uniqueness_extra_kwargs[unique_constraint_name] = {'default': default}
uniqueness_extra_kwargs[unique_constraint_name] = {"default": default}

elif default is not empty:
# The corresponding field is not present in the
# serializer. We have a default to use for it, so
# add in a hidden field that populates it.
hidden_fields[unique_constraint_name] = HiddenField(default=default)

# Update `extra_kwargs` with any new options.

for key, value in uniqueness_extra_kwargs.items():
if key in extra_kwargs:
value.update(extra_kwargs[key])
Expand Down
Loading