Suponga una aplicación mínima con un modelo de person , un ModelSerializer y un ReadOnlyModelViewSet correspondiente.
Solo existe una entrada en la base de datos por lo que al solicitar /person/1 la respuesta correcta es:
{ "name": "RandomName1" } Al solicitar /person/2 la respuesta es:
{ "detail": "Not found." }Quiero personalizar esto.
Aunque leí la documentación , no está claro cómo puedo personalizar esto.
Debo aclarar que estoy buscando personalizar esto, según la vista. Por ejemplo /person/2 debería devolver:
{ "detail": "Person 2 was not found." } y /address/3 debería devolver:
{ "detail": "Address 3 was not found." }Parece que desea manejar las respuestas que tienen un código de estado 404. Modificando el ejemplo de la documentación vinculada:
from rest_framework.views import exception_handler def custom_exception_handler(exc, context): response = exception_handler(exc, context) if response.data['status_code'] == 404: try: response.data['detail'] = "{name} {id} was not found.".format( name=context['view'].verbose_name, id=context['kwargs']['id'] # this may need tweaking ) except AttributeError: pass return response Luego agregue el verbose_name correspondiente a su vista.