Как отправить запрос на просмотр в зависимости от метода http? - PullRequest
0 голосов
/ 24 октября 2019

У меня есть Post django модель:

class Post(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()

Сериализаторы:

class PostListSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        fields = ('id', 'title')

class PostDetailSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        fields = '__all__'

Просмотров:

class PostListView(generics.ListAPIView):
    queryset = Post.objects.all()
    serializer = PostListSerializer

class CreatePostView(generics.CreateAPIView):
    queryset = Post.objects.all()
    serializer = PostDetailSerializer
    permission_classes = (permissions.IsAuthenticated,)

Конечная точка - / api / posts /

Как отправить запрос в PostListView, если HTTP-метод - GET, и CreatePostView, если HTTP-метод - POST?

1 Ответ

1 голос
/ 24 октября 2019

Вместо написания permission_classes и serializer вы не используете get_serializer_class и get_permissions методы

def get_serializer_class(self):
    if self.request.method == 'GET':
        return PostListSerializer
    return PostDetailSerializer

def get_permissions(self):
    if self.request.method == 'GET':
        return [IsAuthenticated()]
    return []

в качестве альтернативы, подумайте, не ожидаете ли вы слишком многого для одногоконечная точка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...