aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Christie2014-10-22 16:29:09 +0100
committerTom Christie2014-10-22 16:29:09 +0100
commitf9c0e6ee1b045f69920cf9c3aceda4e44f110bfb (patch)
treec5725fe13e9fa538a5df3e7f031f0fcc729c2f3d
parentae53fdff9c6bb3e81a1ec005134462f0d629688f (diff)
downloaddjango-rest-framework-f9c0e6ee1b045f69920cf9c3aceda4e44f110bfb.tar.bz2
unique_for_month, unique_for_year
-rw-r--r--rest_framework/serializers.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py
index 5770fcf6..b45f343a 100644
--- a/rest_framework/serializers.py
+++ b/rest_framework/serializers.py
@@ -24,7 +24,8 @@ from rest_framework.utils.field_mapping import (
ClassLookupDict
)
from rest_framework.validators import (
- UniqueForDateValidator, UniqueTogetherValidator
+ UniqueForDateValidator, UniqueForMonthValidator, UniqueForYearValidator,
+ UniqueTogetherValidator
)
import copy
import inspect
@@ -601,6 +602,22 @@ class ModelSerializer(Serializer):
)
validators.append(validator)
+ if field.unique_for_month and field_name in field_names:
+ validator = UniqueForMonthValidator(
+ queryset=model_class._default_manager,
+ field=field_name,
+ date_field=field.unique_for_month
+ )
+ validators.append(validator)
+
+ if field.unique_for_year and field_name in field_names:
+ validator = UniqueForYearValidator(
+ queryset=model_class._default_manager,
+ field=field_name,
+ date_field=field.unique_for_year
+ )
+ validators.append(validator)
+
return validators
def _get_base_fields(self):