From 84267c626c050c4e2b5c903033a55c0cd83bfd0e Mon Sep 17 00:00:00 2001 From: michigg Date: Tue, 24 Oct 2017 01:29:40 +0200 Subject: [PATCH] implent first Rest Api --- ofu_app/apps/food/serializers.py | 17 +++++++++++++++++ ofu_app/apps/food/urls.py | 6 +++++- ofu_app/apps/food/views.py | 12 +++++++++++- .../__pycache__/settings.cpython-35.pyc | Bin 3077 -> 3225 bytes ofu_app/ofu_app/settings.py | 7 +++++++ 5 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 ofu_app/apps/food/serializers.py diff --git a/ofu_app/apps/food/serializers.py b/ofu_app/apps/food/serializers.py new file mode 100644 index 0000000..be2203c --- /dev/null +++ b/ofu_app/apps/food/serializers.py @@ -0,0 +1,17 @@ +from apps.food.models import Menu, SingleFood +from rest_framework import serializers + + +class SingleFoodSerializer(serializers.HyperlinkedModelSerializer): + class Meta: + model = SingleFood + fields = ('name',) + + +class MenuSerializer(serializers.HyperlinkedModelSerializer): + date = serializers.DateField(format='iso-8601') + menu = SingleFoodSerializer(many=True, read_only=True) + + class Meta: + model = Menu + fields = ('date', 'location', 'menu') diff --git a/ofu_app/apps/food/urls.py b/ofu_app/apps/food/urls.py index a6edb7e..c23eb6c 100644 --- a/ofu_app/apps/food/urls.py +++ b/ofu_app/apps/food/urls.py @@ -13,9 +13,12 @@ Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ -from django.conf.urls import url +from django.conf.urls import url, include +from rest_framework import routers from apps.food import views +router = routers.DefaultRouter() +router.register(r'api', views.FoodViewSet) urlpatterns = [ url(r'^$', views.food, name='food'), @@ -25,4 +28,5 @@ urlpatterns = [ url(r'^all/$', views.food, name='all-food'), url(r'^daily/rating/$', views.food_rating, name='rating-food'), url(r'^weekly/rating/$', views.food_rating, name='rating-food'), + url(r'^', include(router.urls)), ] diff --git a/ofu_app/apps/food/views.py b/ofu_app/apps/food/views.py index c00264e..110e30b 100644 --- a/ofu_app/apps/food/views.py +++ b/ofu_app/apps/food/views.py @@ -7,6 +7,8 @@ from django.shortcuts import render from apps.food.models import Menu, HappyHour, SingleFood from django.http import HttpResponse +from rest_framework import viewsets +from apps.food.serializers import MenuSerializer, SingleFoodSerializer # Create your views here. @@ -104,4 +106,12 @@ def food_image(request): food.save() return HttpResponse(status=200) - return HttpResponse(status=404) + return HttpResponse(status=404) # + + +class FoodViewSet(viewsets.ModelViewSet): + """ + API endpoint that allows users to be viewed or edited. + """ + queryset = Menu.objects.all() + serializer_class = MenuSerializer diff --git a/ofu_app/ofu_app/__pycache__/settings.cpython-35.pyc b/ofu_app/ofu_app/__pycache__/settings.cpython-35.pyc index 52727f12f3c1950f0f152043ade210d034bf4154..884680be641d53fc13324427cc0bef5c1051c310 100644 GIT binary patch delta 596 zcmY*WO-~b16g@LcnoOsy$mbLUEmg1z^&_t87ZaG0Mi9~mA>7S`+lCq>zgr;l$<5aT3zdL{6E&<$`6`~dtAygDkmrX{5_ z(V%ht%5{x3cytXOUxOzaL>A~K*auC38=y(>bI_FTn8fgl2sASc#Pmy$J3PzaS0Hil z8ZFUsnqt>e$Z@tJO1Hr`%V9k{nW@cG^>$4 YbCmHp`{q>gV}@;w89B31$bLBV7Y!JDGynhq delta 446 zcmY+Ay-EW?6otejgCV2-x7@NV`#K%SjD2Nf*~0b|cBZgvK^w>{*nt$meaIYm0GYRr zr34;A)Tpw?JA$ZP-2)L-#KC)pUGQ+a+FwiY(B))ewe)9I5Ov_%jlGj|8(@J=EC diff --git a/ofu_app/ofu_app/settings.py b/ofu_app/ofu_app/settings.py index 72c22c4..89a3c0d 100644 --- a/ofu_app/ofu_app/settings.py +++ b/ofu_app/ofu_app/settings.py @@ -38,8 +38,15 @@ INSTALLED_APPS = [ 'apps.food', 'apps.events', 'apps.donar', + 'rest_framework', ] +REST_FRAMEWORK = { + 'DEFAULT_PERMISSION_CLASSES': [ + 'rest_framework.permissions.IsAdminUser', + ], + 'PAGE_SIZE': 10 +} # MIDDLEWARE = [ # 'django.middleware.security.SecurityMiddleware', # 'django.contrib.sessions.middleware.SessionMiddleware',