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
20 changes: 12 additions & 8 deletions rest_framework/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -1527,18 +1527,22 @@ 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,
}
Comment thread
auvipy marked this conversation as resolved.
Comment on lines +1531 to +1535
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@25punam can you please cross check this and other suggestions?

if getattr(unique_constraint_field, 'empty_strings_allowed', False):
uniqueness_extra_kwargs[unique_constraint_name]["default"] = CreateOnlyDefault('')
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