Uso fuori dei campi scatola in un serializzatore, messaggi di errore di convalida aspetto qualcosa di simile:codici di convalida e messaggi in Django Resto quadro
{
"product": [
"This field must be unique."
],
"price": [
"This field is required."
]
}
Tuttavia, per l'API che sto scrivendo, mi piacerebbe fornire un codice di errore univoco per ogni convalida non riuscita, in modo che i client possano rispondere a livello di programmazione agli errori di convalida o fornire i propri messaggi personalizzati in un'interfaccia utente. Idealmente il JSON errore sarebbe simile a questa:
{
"product": [
{
"code": "unique",
"message": "This field must be unique."
}
],
"price": [
{
"code": "required",
"message": "This field is required."
}
]
}
L'approccio corrente utilizzando ValidationErrors rende questo piuttosto difficile. Guardando attraverso il codice, sembra che questo tipo di segnalazione degli errori non sia attualmente supportato. Tuttavia, sto cercando un approccio per ignorare la gestione degli errori per adattarsi a questo modello.
Potrebbe sovrascrivere il metodo 'Serializer.is_valid', prendere un ValidationError, e cambiare il modo in cui viene aggiunta al dizionario errori? Ciò presuppone che DRF o Django aggiungano i valori 'code' che stai cercando. – kdazzle
Lasciami indovinare: stai usando newforms (https://github.com/insin/newforms) – Catskul
In realtà, ci sono discussioni per incorporare un tale supporto in DRF, vedi https://github.com/tomchristie/django- rest-framework/pull/3169 –