Django REST API в XML и JSON

Как я мог создать Django REST API в XML и JSON одновременно из одной и той же модели?

У меня есть модель, и мне нужно создать 2 разных вывода из этой модели: один в XML и один в JSON.

Это должно быть довольно просто, если указать DEFAULT_RENDERER_CLASSES в settings.py с соответствующими значениями. Что именно вы имеете в виду под то же время? Вам нужен вывод XML и JSON в целом для всего вашего REST API (все модели) или только для одной конкретной модели?

cezar 20.11.2018 09:01

У меня мало моделей, но я хочу создать два типа api только из одной модели, а для другой модели достаточно типа JSON.

Zahid Uan Nabi 20.11.2018 09:06
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
1
2
1 149
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вам нужно настраиваемое поведение только для конкретной модели, вы можете указать renderer_classes только в представлении для этой модели.

Предположим, у вас есть модель, назовем ее Foo:

# models.py
class Foo(models.Model):
    # properties

вы можете сделать это на своем views.py:

from rest_framework.renderers import JSONRenderer
from rest_framework_xml.renderers import XMLRenderer
from rest_framework.views import APIView

class FooView(APIView):
    renderer_classes = (JSONRenderer, XMLRenderer)
    # the rest

XMLRenderer больше не является неотъемлемой частью Django REST Framework и должен быть установлен как дополнительный пакет:

$ pip install djangorestframework-xml

Официальная документация описывает использование renderers.

как это сделать в общих представлениях ??

rammanoj 20.11.2018 09:26

Общие виды расширяют возможности APIView, поэтому нет никакой разницы.

cezar 20.11.2018 09:29

Другие вопросы по теме