mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-05 04:50:12 +03:00
add default value to model serializer
This commit is contained in:
parent
36e30c8f91
commit
6d166a0538
|
@ -96,9 +96,12 @@ def get_field_kwargs(field_name, model_field):
|
||||||
kwargs['read_only'] = True
|
kwargs['read_only'] = True
|
||||||
return kwargs
|
return kwargs
|
||||||
|
|
||||||
if model_field.has_default() or model_field.blank or model_field.null:
|
if model_field.blank or model_field.null:
|
||||||
kwargs['required'] = False
|
kwargs['required'] = False
|
||||||
|
|
||||||
|
if model_field.has_default():
|
||||||
|
kwargs['default'] = model_field.get_default()
|
||||||
|
|
||||||
if model_field.null and not isinstance(model_field, models.NullBooleanField):
|
if model_field.null and not isinstance(model_field, models.NullBooleanField):
|
||||||
kwargs['allow_null'] = True
|
kwargs['allow_null'] = True
|
||||||
|
|
||||||
|
|
|
@ -108,7 +108,7 @@ class TestRegularFieldMappings(TestCase):
|
||||||
TestSerializer():
|
TestSerializer():
|
||||||
auto_field = IntegerField(read_only=True)
|
auto_field = IntegerField(read_only=True)
|
||||||
big_integer_field = IntegerField()
|
big_integer_field = IntegerField()
|
||||||
boolean_field = BooleanField(required=False)
|
boolean_field = BooleanField(default=False, required=False)
|
||||||
char_field = CharField(max_length=100)
|
char_field = CharField(max_length=100)
|
||||||
comma_separated_integer_field = CharField(max_length=100, validators=[<django.core.validators.RegexValidator object>])
|
comma_separated_integer_field = CharField(max_length=100, validators=[<django.core.validators.RegexValidator object>])
|
||||||
date_field = DateField()
|
date_field = DateField()
|
||||||
|
@ -141,7 +141,7 @@ class TestRegularFieldMappings(TestCase):
|
||||||
length_limit_field = CharField(max_length=12, min_length=3)
|
length_limit_field = CharField(max_length=12, min_length=3)
|
||||||
blank_field = CharField(allow_blank=True, max_length=10, required=False)
|
blank_field = CharField(allow_blank=True, max_length=10, required=False)
|
||||||
null_field = IntegerField(allow_null=True, required=False)
|
null_field = IntegerField(allow_null=True, required=False)
|
||||||
default_field = IntegerField(required=False)
|
default_field = IntegerField(default=0)
|
||||||
descriptive_field = IntegerField(help_text='Some help text', label='A label')
|
descriptive_field = IntegerField(help_text='Some help text', label='A label')
|
||||||
choices_field = ChoiceField(choices=[('red', 'Red'), ('blue', 'Blue'), ('green', 'Green')])
|
choices_field = ChoiceField(choices=[('red', 'Red'), ('blue', 'Blue'), ('green', 'Green')])
|
||||||
""")
|
""")
|
||||||
|
@ -152,7 +152,9 @@ class TestRegularFieldMappings(TestCase):
|
||||||
"('red', 'Red'), ('blue', 'Blue'), ('green', 'Green')",
|
"('red', 'Red'), ('blue', 'Blue'), ('green', 'Green')",
|
||||||
"(u'red', u'Red'), (u'blue', u'Blue'), (u'green', u'Green')"
|
"(u'red', u'Red'), (u'blue', u'Blue'), (u'green', u'Green')"
|
||||||
)
|
)
|
||||||
self.assertEqual(unicode_repr(TestSerializer()), expected)
|
serializer = TestSerializer()
|
||||||
|
self.assertEqual(unicode_repr(serializer), expected)
|
||||||
|
self.assertFalse(serializer.fields["default_field"].required)
|
||||||
|
|
||||||
def test_method_field(self):
|
def test_method_field(self):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue
Block a user