add default value to model serializer

This commit is contained in:
Eduardo S. Klein 2015-03-18 22:47:46 +01:00
parent 36e30c8f91
commit 6d166a0538
2 changed files with 9 additions and 4 deletions

View File

@ -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

View File

@ -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):
""" """