Commit e71e0504 authored by Rafal's avatar Rafal

Add api filter by tag name

parent d3900df3
...@@ -25,6 +25,8 @@ router.register(r'user_friendship', user_views.UserFriendshipViewSet) ...@@ -25,6 +25,8 @@ router.register(r'user_friendship', user_views.UserFriendshipViewSet)
router.register(r'user_event_request', user_views.UserEventRequestViewSet) router.register(r'user_event_request', user_views.UserEventRequestViewSet)
router.register(r'user_event', user_views.UserEventViewSet) router.register(r'user_event', user_views.UserEventViewSet)
router.register(r'user_api', user_views.UserAPIViewSet) router.register(r'user_api', user_views.UserAPIViewSet)
router.register(r'tag_api', tag_views.TagApiViewSet)
urlpatterns = patterns('', urlpatterns = patterns('',
......
from rest_framework import viewsets, permissions from rest_framework import viewsets, permissions
from app.API.models import API
from app.API.serializers import APISerializer
from app.Tag.models import Tag from app.Tag.models import Tag
from app.Tag.serializers import TagSerializer from app.Tag.serializers import TagSerializer
from django.shortcuts import get_object_or_404
import rest_framework
from rest_framework.response import Response
class TagViewSet(viewsets.ModelViewSet): class TagViewSet(viewsets.ModelViewSet):
""" """
...@@ -10,3 +14,22 @@ class TagViewSet(viewsets.ModelViewSet): ...@@ -10,3 +14,22 @@ class TagViewSet(viewsets.ModelViewSet):
queryset = Tag.objects.all() queryset = Tag.objects.all()
serializer_class = TagSerializer serializer_class = TagSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,) permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
class TagApiViewSet(viewsets.ModelViewSet):
"""
API for articles
"""
queryset = Tag.objects.all()
serializer_class = TagSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
def list(self, request, *args, **kwargs):
return Response(status=rest_framework.status.HTTP_400_BAD_REQUEST, data={"Request name of tag! Provide it by '../tag_name/"})
def retrieve(self, request, pk):
tag = get_object_or_404(self.queryset, name__iexact=pk)
queryset = API.objects.filter(tag=tag)
page = self.paginate_queryset(queryset)
serializer = APISerializer(page, many=True, context={'request': request})
return self.get_paginated_response(serializer.data)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment