Я создаю веб-API для приложения для опросов, которое Django дает нам в качестве практики для себя. Я был в состоянии пойти довольно далеко, но я застрял с желанием дать возможность для форматирования с XML.
Я пытался использовать DEFAULT_PARSER
и DEFAULT_RENDER
, и это не получилось так, как я хотел. Я просто хочу, чтобы там была опция для JSON.
Это мой класс API / Views
from rest_framework import generics
from . serializers import QuestionSerializer, ChoiceSerializer
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.filters import OrderingFilter, SearchFilter
from polls.models import Choice, Question
class QuestionList(generics.ListAPIView):
serializer_class = QuestionSerializer
queryset = Question.objects.all()
filter_backends = (DjangoFilterBackend, OrderingFilter, SearchFilter)
filter_fields = {'id': ['gte', 'lte', 'exact'], 'pub_date': ['gte', 'lte']}
ordering_fields = ('id', 'question_text', 'pub_date')
search_fields = ('pub_date', 'question_text')
class ChoiceList(generics.ListAPIView):
serializer_class = ChoiceSerializer
queryset = Choice.objects.all()
filter_backends = (DjangoFilterBackend, OrderingFilter, SearchFilter)
# trying to do greater than or less than filter fields stuff
filter_fields = {'id': ['gte', 'lte', 'exact'], 'votes': ['gte', 'lte', 'exact']}
ordering_fields = ('id', 'votes', 'choice_text', 'question',)
search_fields = ('choice_text', 'question')
это класс API / сериализаторов
from rest_framework import routers, serializers, viewsets
from polls.models import Question, Choice
# serializer is the way you can see the list of info for the models you have selected
class QuestionSerializer(serializers.ModelSerializer):
class Meta:
model = Question
fields = '__all__'
# i have no idea how to make hyperlinks to open up another page
class ChoiceSerializer(serializers.ModelSerializer):
class Meta:
model = Choice
fields = ('id', 'votes', 'choice_text', 'question')
Хотите иметь раскрывающееся меню с надписью "XML"