Scenariusz jest dość prosty:Własne komunikaty o błędach w Serializatorze Django Rest Framework
Mam model z pewnymi polami, które są wymagane. Powiedzmy, że jednym z nich jest TextField
, który nie może być blank
. Mam również ModelSerializer
(Django Rest Framework), który reprezentuje ten model.
Gdy do ustawiania tego pola przez moduł szeregowy używany jest pusty łańcuch, zwracany błąd pochodzi z samego modelu (This field can't be blank
).
Chciałbym przesłonić komunikaty o błędach tylko na poziomie serializera, bez potrzeby bezpośredniego określania każdego pola w serializatorze (co moim zdaniem jest niezgodne z zasadą DRY), konieczności napisania metody validate_
dla każdego pole i podnieś moją własną ValidationError
lub konieczność zmiany komunikatów o błędach na poziomie Model
(ponieważ czasami kontekst komunikatu o błędzie ma znaczenie dla mojego przypadku użycia, a komunikat o błędzie powinien zostać podany odpowiednio).
Innymi słowy, czy istnieje sposób, aby zastąpić komunikaty o błędach na poziomie serializer tak proste, jak to jest dla ModelForm
:
class MyModelForm(ModelForm):
class Meta:
model = MyModel
error_messages = {"field1": {"required": _("For some reason this is a custom error message overriding the model's default")}}
DRF dzwoni django weryfikatorów polu w czasie walidacji. Więc błędy będą pochodzić stąd, nie z DRF. Chodzi o to, aby spróbować określić komunikat o błędzie na poziomie modelu lub pola, ponieważ jak widzę, nie ma sposobu na zastąpienie tych komunikatów za pomocą DRF. – coldmind