Add routes and custom serialiser
Add requirements
This commit is contained in:
parent
31d5f7ade4
commit
1b1a19ae9d
BIN
db.sqlite3
BIN
db.sqlite3
Binary file not shown.
@ -1,6 +1,8 @@
|
|||||||
Django==2.0.3
|
Django==2.0.3
|
||||||
|
django-cors-headers==2.5.2
|
||||||
djangorestframework==3.7.7
|
djangorestframework==3.7.7
|
||||||
djangorestframework-jwt==1.11.0
|
djangorestframework-jwt==1.11.0
|
||||||
|
djangorestframework-stubs==0.4.2
|
||||||
gunicorn==19.7.1
|
gunicorn==19.7.1
|
||||||
PyJWT==1.6.1
|
PyJWT==1.6.1
|
||||||
pytz==2018.3
|
pytz==2018.3
|
||||||
|
@ -33,6 +33,7 @@ class Params(models.Model):
|
|||||||
autonomy = models.IntegerField()
|
autonomy = models.IntegerField()
|
||||||
default_relay = models.IntegerField()
|
default_relay = models.IntegerField()
|
||||||
stand_minimum_time = models.IntegerField()
|
stand_minimum_time = models.IntegerField()
|
||||||
|
comment = models.CharField(max_length=250)
|
||||||
|
|
||||||
|
|
||||||
class Relay(models.Model):
|
class Relay(models.Model):
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from django.contrib.auth.models import User
|
|
||||||
|
|
||||||
from .models import Driver, Kart, Params, Relay
|
from .models import Driver, Kart, Params, Relay
|
||||||
|
|
||||||
@ -41,6 +40,23 @@ class KartSerializer(serializers.ModelSerializer):
|
|||||||
return Kart.objects.create(**validated_data)
|
return Kart.objects.create(**validated_data)
|
||||||
|
|
||||||
|
|
||||||
|
class KartSimpleSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Kart
|
||||||
|
fields = ('id', 'name', 'autonomy')
|
||||||
|
|
||||||
|
def update(self, instance, validated_data):
|
||||||
|
instance.name = validated_data.get("name", instance.name)
|
||||||
|
instance.autonomy = validated_data.get("autonomy", instance.autonomy)
|
||||||
|
instance.comment = validated_data.get("comment", instance.comment)
|
||||||
|
instance.save()
|
||||||
|
return instance
|
||||||
|
|
||||||
|
def create(self, validated_data):
|
||||||
|
return Kart.objects.create(**validated_data)
|
||||||
|
|
||||||
|
|
||||||
class RelaySerializer(serializers.ModelSerializer):
|
class RelaySerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Relay
|
model = Relay
|
||||||
@ -66,12 +82,13 @@ class RelaySerializer(serializers.ModelSerializer):
|
|||||||
class ParamSerializer(serializers.ModelSerializer):
|
class ParamSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Params
|
model = Params
|
||||||
fields = ('id', 'default_relay', 'autonomy', 'stand_minimum_time')
|
fields = ('id', 'default_relay', 'autonomy', 'stand_minimum_time', 'comment')
|
||||||
|
|
||||||
def update(self, instance, validated_data):
|
def update(self, instance, validated_data):
|
||||||
instance.default_relay = validated_data.get("default_relay", instance.default_relay)
|
instance.default_relay = validated_data.get("default_relay", instance.default_relay)
|
||||||
instance.autonomy = validated_data.get("autonomy", instance.autonomy)
|
instance.autonomy = validated_data.get("autonomy", instance.autonomy)
|
||||||
instance.stand_minimum_time = validated_data.get("stand_minimum_time", instance.stand_minimum_time)
|
instance.stand_minimum_time = validated_data.get("stand_minimum_time", instance.stand_minimum_time)
|
||||||
|
instance.comment = validated_data.get("comment", instance.comment)
|
||||||
instance.save()
|
instance.save()
|
||||||
return instance
|
return instance
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
from django.urls import path
|
from django.urls import path
|
||||||
from .views import ListCreateDriversView, DriversDetailView, KartsDetailView, ListCreateKartsView#, ListCreateRulesView, RulesDetailView, \
|
from .views import ListCreateDriversView, DriversDetailView, KartsDetailView, ListCreateKartsView, ParamsDetailView#, ListCreateRulesView, RulesDetailView, \
|
||||||
#ListCreateKartsView, KartsDetailView, ListCreateRelaysView, RelaysDetailView, ListCreateRacesView, \
|
#ListCreateKartsView, KartsDetailView, ListCreateRelaysView, RelaysDetailView, ListCreateRacesView, \
|
||||||
#RacesDetailView
|
#RacesDetailView
|
||||||
|
|
||||||
@ -10,7 +10,7 @@ urlpatterns = [
|
|||||||
path('karts/<int:pk>/', KartsDetailView.as_view(), name="drivers-detail"),
|
path('karts/<int:pk>/', KartsDetailView.as_view(), name="drivers-detail"),
|
||||||
# path('karts/<int:pk>/', KartsDetailView.as_view(), name="karts-detail"),
|
# path('karts/<int:pk>/', KartsDetailView.as_view(), name="karts-detail"),
|
||||||
# path('rules/', ListCreateRulesView.as_view(), name="rules-list-create"),
|
# path('rules/', ListCreateRulesView.as_view(), name="rules-list-create"),
|
||||||
# path('rules/<int:pk>/', RulesDetailView.as_view(), name="rules-detail"),
|
path('params/<int:pk>/', ParamsDetailView.as_view(), name="rules-detail"),
|
||||||
# path('relays/', ListCreateRelaysView.as_view(), name="relays-list-create"),
|
# path('relays/', ListCreateRelaysView.as_view(), name="relays-list-create"),
|
||||||
# path('relays/<int:pk>/', RelaysDetailView.as_view(), name="relays-detail"),
|
# path('relays/<int:pk>/', RelaysDetailView.as_view(), name="relays-detail"),
|
||||||
# path('races/', ListCreateRacesView.as_view(), name="races-list-create"),
|
# path('races/', ListCreateRacesView.as_view(), name="races-list-create"),
|
||||||
|
@ -9,7 +9,7 @@ from rest_framework.views import status
|
|||||||
from .decorators import validate_request_driver_data
|
from .decorators import validate_request_driver_data
|
||||||
|
|
||||||
from .models import Driver, Kart, Params, Relay
|
from .models import Driver, Kart, Params, Relay
|
||||||
from .serializers import DriverSerializer, RelaySerializer, ParamSerializer, KartSerializer
|
from .serializers import DriverSerializer, RelaySerializer, ParamSerializer, KartSerializer, KartSimpleSerializer
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@ -113,6 +113,42 @@ class KartsDetailView(generics.ListAPIView):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class ParamsDetailView(generics.ListAPIView):
|
||||||
|
"""
|
||||||
|
Provides a get method handler.
|
||||||
|
"""
|
||||||
|
queryset = Params.objects.all()
|
||||||
|
serializer_class = ParamSerializer
|
||||||
|
#permission_classes = (permissions.IsAuthenticated,)
|
||||||
|
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
try:
|
||||||
|
a_param = self.queryset.get(pk=kwargs["pk"])
|
||||||
|
return Response(ParamSerializer(a_param).data)
|
||||||
|
except Params.DoesNotExist:
|
||||||
|
return Response(
|
||||||
|
data={
|
||||||
|
"message": "Param with id: {} does not exist".format(kwargs["pk"])
|
||||||
|
},
|
||||||
|
status=status.HTTP_404_NOT_FOUND
|
||||||
|
)
|
||||||
|
|
||||||
|
#@validate_request_driver_data
|
||||||
|
def put(self, request, *args, **kwargs):
|
||||||
|
try:
|
||||||
|
a_param = self.queryset.get(pk=kwargs["pk"])
|
||||||
|
serializer = ParamSerializer(instance=a_param, data=request.data, partial=True)
|
||||||
|
updated_param = serializer.update(a_param, request.data)
|
||||||
|
return Response(ParamSerializer(updated_param).data)
|
||||||
|
except Params.DoesNotExist:
|
||||||
|
return Response(
|
||||||
|
data={
|
||||||
|
"message": "Param with id: {} does not exist".format(kwargs["pk"])
|
||||||
|
},
|
||||||
|
status=status.HTTP_404_NOT_FOUND
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class ListCreateDriversView(generics.ListCreateAPIView):
|
class ListCreateDriversView(generics.ListCreateAPIView):
|
||||||
"""
|
"""
|
||||||
GET songs/
|
GET songs/
|
||||||
@ -145,20 +181,16 @@ class ListCreateKartsView(generics.ListCreateAPIView):
|
|||||||
"""
|
"""
|
||||||
queryset = Kart.objects.all()
|
queryset = Kart.objects.all()
|
||||||
serializer_class = KartSerializer
|
serializer_class = KartSerializer
|
||||||
#permission_classes = (permissions.IsAuthenticated,)
|
|
||||||
|
|
||||||
#@validate_request_driver_data
|
#@validate_request_driver_data
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
logger.error('ListCreateKartsView => post')
|
a_kart = Kart.objects.create(
|
||||||
a_song = Kart.objects.create(
|
name=request.data["name"],
|
||||||
first_name=request.data["first_name"],
|
autonomy=request.data["last_name"],
|
||||||
last_name=request.data["last_name"],
|
comment=request.data["order"]
|
||||||
order=request.data["order"],
|
|
||||||
ref_time=request.data["ref_time"],
|
|
||||||
kart_id=request.data["kart_id"]
|
|
||||||
)
|
)
|
||||||
return Response(
|
return Response(
|
||||||
data=DriverSerializer(a_song).data,
|
data=DriverSerializer(a_kart).data,
|
||||||
status=status.HTTP_201_CREATED
|
status=status.HTTP_201_CREATED
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user