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 52727f1..884680b 100644 Binary files a/ofu_app/ofu_app/__pycache__/settings.cpython-35.pyc and b/ofu_app/ofu_app/__pycache__/settings.cpython-35.pyc differ 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',