aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Christie2014-11-19 14:51:49 +0000
committerTom Christie2014-11-19 14:51:49 +0000
commit40b1ea919b00bd8bf1f53f8eb8bf33a498b237b8 (patch)
treea859400bf0ba06f0ce7bcedb4f558034555d3977
parent851628107842a5bf84725247a42cae1ac90decf6 (diff)
downloaddjango-rest-framework-40b1ea919b00bd8bf1f53f8eb8bf33a498b237b8.tar.bz2
Fix non-determanistic unique constraint mapping. Refs #2092.
-rw-r--r--rest_framework/serializers.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py
index 3189619e..ce0d14d6 100644
--- a/rest_framework/serializers.py
+++ b/rest_framework/serializers.py
@@ -721,6 +721,7 @@ class ModelSerializer(Serializer):
# arguments to deal with `unique_for` dates that are required to
# be in the input data in order to validate it.
hidden_fields = {}
+ unique_constraint_names = set()
for model_field_name, field_name in model_field_mapping.items():
try:
@@ -729,12 +730,13 @@ class ModelSerializer(Serializer):
continue
# Include each of the `unique_for_*` field names.
- unique_constraint_names = set([
+ unique_constraint_names |= set([
model_field.unique_for_date,
model_field.unique_for_month,
model_field.unique_for_year
])
- unique_constraint_names -= set([None])
+
+ unique_constraint_names -= set([None])
# Include each of the `unique_together` field names,
# so long as all the field names are included on the serializer.