diff options
| author | Tom Christie | 2014-11-19 14:51:49 +0000 | 
|---|---|---|
| committer | Tom Christie | 2014-11-19 14:51:49 +0000 | 
| commit | 40b1ea919b00bd8bf1f53f8eb8bf33a498b237b8 (patch) | |
| tree | a859400bf0ba06f0ce7bcedb4f558034555d3977 | |
| parent | 851628107842a5bf84725247a42cae1ac90decf6 (diff) | |
| download | django-rest-framework-40b1ea919b00bd8bf1f53f8eb8bf33a498b237b8.tar.bz2 | |
Fix non-determanistic unique constraint mapping. Refs #2092.
| -rw-r--r-- | rest_framework/serializers.py | 6 | 
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. | 
