Skip to content

Models in ListField are not validated when calling .validate() #136

@paulopaixaoamaral

Description

@paulopaixaoamaral

If we have a ListField with items of type models.Base, for example:

from jsonmodels import models, fields

class Cat(models.Base):
    name = fields.StringField(required=True)

class Person(models.Base):
    pets = fields.ListField([Cat])

And we call .validate() on the model:

person = Person(pets=[Cat()])
person.validate()

Then nothing will happen, but if we call .to_struct() on the model:

person = Person(pets=[Cat()])
person.to_struct()

Then a ValidationError is raised:

>>> jsonmodels.errors.ValidationError: ("Error for field 'name'.", ValidationError('Field is required!'))

Is this working as intended or should the list call .validate() on its items if the item is an instance of a model?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions