aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Doermann2014-08-20 11:00:37 -0600
committerGreg Doermann2014-08-20 11:00:37 -0600
commitf27a28682bdb1b4eea0ec9afca2eb2835c735f55 (patch)
tree021cd48ec9ca1cd61c61129758ca8517c83962d9
parent21a0a826bba3df01e72ea8b0390e05d50cf9a854 (diff)
downloaddjango-rest-framework-f27a28682bdb1b4eea0ec9afca2eb2835c735f55.tar.bz2
Frameworks throws AssertionError saying you cannot set required=True and read_only=True on editable=False model fields. We should not make the field required if editable=False.
-rw-r--r--rest_framework/serializers.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py
index be8ad3f2..27af7ef3 100644
--- a/rest_framework/serializers.py
+++ b/rest_framework/serializers.py
@@ -831,7 +831,7 @@ class ModelSerializer(Serializer):
}
if model_field:
- kwargs['required'] = not(model_field.null or model_field.blank)
+ kwargs['required'] = not(model_field.null or model_field.blank) and model_field.editable
if model_field.help_text is not None:
kwargs['help_text'] = model_field.help_text
if model_field.verbose_name is not None:
@@ -854,7 +854,7 @@ class ModelSerializer(Serializer):
"""
kwargs = {}
- if model_field.null or model_field.blank:
+ if model_field.null or model_field.blank and model_field.editable:
kwargs['required'] = False
if isinstance(model_field, models.AutoField) or not model_field.editable:
@@ -1110,7 +1110,7 @@ class HyperlinkedModelSerializer(ModelSerializer):
}
if model_field:
- kwargs['required'] = not(model_field.null or model_field.blank)
+ kwargs['required'] = not(model_field.null or model_field.blank) and model_field.editable
if model_field.help_text is not None:
kwargs['help_text'] = model_field.help_text
if model_field.verbose_name is not None: