Skip to content

Commit

Permalink
Adding Django REST framework support
Browse files Browse the repository at this point in the history
  • Loading branch information
mrsarm committed Apr 29, 2019
1 parent 47e9b0d commit c952c04
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 0 deletions.
10 changes: 10 additions & 0 deletions coleman/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
]

MIDDLEWARE = [
Expand Down Expand Up @@ -194,6 +195,15 @@
EMAIL_HOST_PASSWORD = os.getenv('EMAIL_HOST_PASSWORD', 'PASS')


REST_FRAMEWORK = {
# Use Django's standard `django.contrib.auth` permissions,
# or allow read-only access for unauthenticated users.
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
]
}


#
# Custom configurations
#
Expand Down
10 changes: 10 additions & 0 deletions coleman/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,20 @@
from django.conf import settings
from django.http import HttpResponseRedirect

# Rest API
from rest_framework import routers
from mtasks.serializers import TaskViewSet

router = routers.DefaultRouter()
router.register(r'tasks', TaskViewSet)



urlpatterns = [
url(r'^$', lambda r: HttpResponseRedirect('admin/')), # Remove this redirect if you add custom views
path('admin/', admin.site.urls),
url(r'^advanced_filters/', include('advanced_filters.urls')),
url(r'^api/v1/', include(router.urls)),
]

admin.site.site_header = settings.SITE_HEADER
25 changes: 25 additions & 0 deletions mtasks/serializers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from rest_framework import serializers, viewsets
from partner.serializers import PartnerSerializer
from .models import Task


class TaskSerializer(serializers.HyperlinkedModelSerializer):
partner = PartnerSerializer(read_only=True)

class Meta:
model = Task
fields = (
'number',
'title',
'partner',
'description',
'resolution',
'deadline',
'state',
'created_at',
)


class TaskViewSet(viewsets.ModelViewSet):
queryset = Task.objects.all()
serializer_class = TaskSerializer
16 changes: 16 additions & 0 deletions partner/serializers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
from rest_framework import serializers, viewsets

from .models import Partner


class PartnerSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Partner
fields = (
'name',
)


class TaskViewSet(viewsets.ModelViewSet):
queryset = Partner.objects.all()
serializer_class = PartnerSerializer
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ django-advanced-filters==1.1.0
django-braces==1.13.0 # via django-advanced-filters
simplejson==3.16.0 # via django-advanced-filters
django-adminfilters==1.1.0
djangorestframework==3.9.3

0 comments on commit c952c04

Please sign in to comment.