Ciao a tutti

Usate marshmallow per fare validazione dell'input?

Mi trovo con un problema che non so bene come affrontare: come posso decidere a runtime quale Schema utilizzare per la validazione?

Diciamo che ho una API che serve a inviare un ordine di acquisto di bevande: se l'utente è minorenne può ordinare al massimo una bottiglia, altrimenti può anche svuotarmi il magazzino

Due json validi sono:

per i minorenni
{
  eta: 15,
  bevanda: {
    quantita: 1
  }
}

per i maggiorenni:
{
  eta: 20,
  bevanda: {
    quantita: 100
  }
}

Gli schema sono:

class Ordine(Schema):
  eta = fields.Integer(required=True)
  bevanda = fields.Nested(BevandaMaggiorenni, required=True)


class BevandaMaggiorenni(Schema):
  quantita = fields.Integer(required=True)


class BevandaMinorenni(Schema):
  quantita = fields.Integer(required=True)

  @validates('quantita')
  def validates_quantita(self, quantita):
    if quantita > 1:
      raise ValidationError('troppe bottiglie')


Come posso fare per cambiare lo schema associato a 'bevanda' a seconda del valore di 'eta'?

ciao

federico
_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a