Guest User

Untitled

a guest
Jul 21st, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.70 KB | None | 0 0
  1. class InvoiceViewSet(viewsets.ViewSet):
  2. serializer_class = InvoiceSerializer
  3. filter_backend = filters.DjangoFilterBackend
  4. filter_fields = ('status','supplier',)
  5.  
  6. def list(self,request,):
  7. queryset = Invoice.objects.filter()
  8. serializer = InvoiceSerializer(queryset, many=True)
  9. return Response(serializer.data)
  10.  
  11. def retrieve(self, request, pk=None):
  12. queryset = Invoice.objects.filter()
  13. invoice = get_object_or_404(queryset, pk=pk)
  14. serializer = InvoiceSerializer(invoice)
  15. return Response(serializer.data)
  16.  
  17. class InvoiceItemViewSet(viewsets.ViewSet):
  18.  
  19. serializer_class = InvoiceItemSerializer
  20.  
  21. def list(self,request,invoice_pk=None):
  22. queryset = InvoiceItem.objects.filter(invoice=invoice_pk)
  23. serializer = InvoiceItemSerializer(queryset,many=True)
  24. return Response(serializer.data)
  25.  
  26.  
  27. def retrieve(self,request,pk,invoice_pk):
  28. queryset = InvoiceItem.objects.filter(pk=pk,invoice=invoice_pk)
  29. invoice_item = get_object_or_404(queryset,pk=pk)
  30. serializer = InvoiceItemSerializer(invoice_item)
  31. return Response(serializer.data)
  32.  
  33. from django.conf.urls import url, include
  34. #viewset
  35. from rest_framework_nested import routers
  36. from payables.views import InvoiceViewSet,InvoiceItemViewSet
  37.  
  38. router = routers.SimpleRouter()
  39. router.register(r'invoices', InvoiceViewSet,base_name='invoices')
  40.  
  41. invoice_item_router = routers.NestedSimpleRouter(router,r'invoices',lookup='invoice')
  42. invoice_item_router.register(r'items', InvoiceItemViewSet, base_name='invoice_items')
  43.  
  44. urlpatterns = [
  45. url(r'^',include(router.urls)),
  46. url(r'^',include(invoice_item_router.urls))
  47. ]
  48.  
  49. queryset = Invoice.objects.filter()
Add Comment
Please, Sign In to add comment