Updates to ComplexFields
Required now means they cannot be empty [#302]
This commit is contained in:
parent
17728d4e74
commit
6961a9494f
4 changed files with 22 additions and 5 deletions
|
|
@ -282,6 +282,11 @@ class ComplexBaseField(BaseField):
|
|||
raise ValidationError('Invalid %s item (%s)' % (
|
||||
self.field.__class__.__name__, str(v)))
|
||||
|
||||
# Don't allow empty values if required
|
||||
if self.required and not value:
|
||||
raise ValidationError('Field "%s" is required and cannot be empty' %
|
||||
self.name)
|
||||
|
||||
def prepare_query_value(self, op, value):
|
||||
return self.to_mongo(value)
|
||||
|
||||
|
|
|
|||
|
|
@ -459,6 +459,9 @@ class GenericEmbeddedDocumentField(BaseField):
|
|||
class ListField(ComplexBaseField):
|
||||
"""A list field that wraps a standard field, allowing multiple instances
|
||||
of the field to be used as a list in the database.
|
||||
|
||||
.. note::
|
||||
Required means it cannot be empty - as the default for ListFields is []
|
||||
"""
|
||||
|
||||
# ListFields cannot be indexed with _types - MongoDB doesn't support this
|
||||
|
|
@ -476,10 +479,6 @@ class ListField(ComplexBaseField):
|
|||
isinstance(value, basestring)):
|
||||
raise ValidationError('Only lists and tuples may be used in a '
|
||||
'list field')
|
||||
# don't allow empty lists when they are required
|
||||
if self.required and not value:
|
||||
raise ValidationError('Field "%s" is required and cannot be empty' %
|
||||
self.name)
|
||||
super(ListField, self).validate(value)
|
||||
|
||||
def prepare_query_value(self, op, value):
|
||||
|
|
@ -517,6 +516,9 @@ class DictField(ComplexBaseField):
|
|||
"""A dictionary field that wraps a standard Python dictionary. This is
|
||||
similar to an embedded document, but the structure is not defined.
|
||||
|
||||
.. note::
|
||||
Required means it cannot be empty - as the default for ListFields is []
|
||||
|
||||
.. versionadded:: 0.3
|
||||
.. versionchanged:: 0.5 - Can now handle complex / varying types of data
|
||||
"""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue