У меня есть модель Foo
, которую я использую в качестве модели для моего ванильного сериализатора DRF.Как настроить ответ Django REST Framework GET?
models.py
class Foo(models.Model):
name = models.CharField(max_length=20)
description = models.TextField()
is_public = models.BooleanField(default=False)
serializers.py
class FooSerializer(serializers.ModelSerializer):
class Meta:
model = Foo
views.py
class FooRetrieveAPIView(RetrieveAPIView):
queryset = Foo.objects.all()
serializer_class = FooSerializer
Теперь результат т его конечная точка используется интерфейсным кодом, который затем является основой того, как будет отображаться следующая страница. В любом случае мне нужно изменить структуру результатов, возвращенных как для статуса 200
(существующая запись), так и для 404
(несуществующая запись).
Фактический результат (от ванили ФПИ):
$ curl localhost:8000/foo/1/ # existing record
{"id": 1, "name": "foo", "description": "foo description", is_public=false}
$ curl localhost:8000/foo/2/ # non-existent record
{"detail": "Not found."}
Как я хочу, чтобы результаты были:
$ curl localhost:8000/foo/1/
{"error": "", "foo": {"id": 1, "name": "foo", "description": "foo description", is_public=false}}
$ curl localhost:8000/foo/2/
{"error": "Some custom error message", "foo": null}
Я в основном используется ваниль DRF так все довольно просто поэтому эта настройка структуры ответа для меня немного нова.
Джанго используется версия: 1.9.9
DRF используется версия: 3.3.x
Возможный дубликат http://stackoverflow.com/questions/35019030/how-to-return-custom-json-in-django-rest-framework – JClarke