Ho un serializzatore che convalida i campi in base ai valori di altri campi, Nella risposta all'errore vorrei mostrare ogni errore di campo come errore di campo come contrario a mostrare tutto sotto "non_field_errors" che è ciò che accadrebbe se dovessi generare un ValidationError nel metodo di validazione a livello di oggetto. Di seguito è riportato un esempio di quello che sto cercando di realizzare:django rest framework: imposta l'errore a livello di campo dal metodo serializer validate()
MySerializer(ModelSerializer):
...
def validate(self, data):
field_val1 = data['field_val1']
field_val2 = data['field_val2']
if not self._is_field_valid(field_val1, field_val2):
# The below line is how I would do what I want with Django
# Forms, however, it's not valid in DRF
self._errors['field_val1'] = 'this field is not valid'
La risposta di errore desiderato è:
{'field_val1': ['this field is not valid']}
Grazie mille per questo. Ho frainteso la fonte e non pensavo che avrebbe funzionato. Questo è esattamente ciò di cui avevo bisogno –
Funziona anche bene per simulare le risposte 'Questo campo è richiesto'. – tyebillion
Non è necessario avvolgere il messaggio di errore nell'elenco. –