Renommage d'une table

Gestion inversée des clés étrangères.
This commit is contained in:
bglacial 2019-01-16 00:35:01 +01:00
parent f94136469f
commit 4cc49e4e9f
7 changed files with 38 additions and 25 deletions

View File

@ -4,40 +4,42 @@ from .models import *
class DriverSerializer(serializers.ModelSerializer): class DriverSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Driver model = Driver
fields = '__all__' fields = ('first_name','last_name')
class RaceSerializer(serializers.ModelSerializer): class RaceSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Race model = Race
fields = '__all__' fields = ('name','start_date','end_date','duration', 'comment','fk_rules')
class RelaySerializer(serializers.ModelSerializer): class RelaySerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Relay model = Relay
fields = '__all__' fields = ('relay_start','relay_end','has_refuel','pilot_chrono','pilot_chrono', 'comment','team_pilot')
class RulesSerializer(serializers.ModelSerializer): class RulesSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Rules model = Rules
fields = '__all__' fields = ('min_stand_duration', 'max_autonomy_dry', 'max_autonomy_wet', 'max_driving_duration', 'relay_default_duration')
class TeamSerializer(serializers.ModelSerializer): class TeamSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Team model = Team
fields = '__all__' fields = ('name', 'comment')
class TeamPilotSerializer(serializers.ModelSerializer): class EngagedPilotSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = TeamPilot model = EngagedPilot
fields = '__all__' fields = ('order','team','pilot','race')
class RelayPilotSerializer(serializers.ModelSerializer): class EngagedPilotsSerializer(serializers.ModelSerializer):
relaysv2 = RelaySerializer(many=True)
class Meta: class Meta:
model = Relay model = EngagedPilot
#fields = ('relay_start','relay_end','has_refuel','pilot_chrono','comment','team_pilot','race') fields = ('order','team','pilot','race', 'relaysv2')
fields = '__all__'
''' class ListRelaysByRaceAndTeamSerializer(serializers.ModelSerializer):
To get linked elements référenced by a foreign key, use depth to adjust the depth of the request. racev2 = EngagedPilotsSerializer(many=True)
''' class Meta:
depth = 2 model = Race
fields = ('name','start_date','end_date','duration', 'comment','fk_rules', 'racev2')

View File

@ -32,16 +32,26 @@ class ListTeamView(generics.ListAPIView):
queryset = Team.objects.all() queryset = Team.objects.all()
serializer_class = TeamSerializer serializer_class = TeamSerializer
class ListTeamPilotView(generics.ListAPIView): class ListEngagedPilotView(generics.ListAPIView):
queryset = TeamPilot.objects.all() queryset = EngagedPilot.objects.all()
serializer_class = TeamPilotSerializer serializer_class = EngagedPilotSerializer
class ListRelaysByRaceAndTeamView(generics.ListAPIView): class ListRelaysByRaceAndTeamView(generics.ListAPIView):
""" serializer_class = ListRelaysByRaceAndTeamSerializer
Getting the params from the url with the "self.kwargs.get" def get_queryset(self):
and filter with thoses in the relays relation raceid = self.kwargs['raceid']
""" teamid = self.kwargs['teamid']
return Race.objects.filter(id=raceid)
"""
def get_queryset(self):
raceid = self.kwargs['raceid']
teamid = self.kwargs['teamid']
return Relay.objects.filter(team_pilot__team=teamid).filter(team_pilot__race=raceid)
class ListRelaysByRaceAndTeamView(generics.ListAPIView):
#Getting the params from the url with the "self.kwargs.get"
#and filter with thoses in the relays relation
serializer_class = RelayPilotSerializer serializer_class = RelayPilotSerializer
lookup_url_raceid = "raceid" lookup_url_raceid = "raceid"
lookup_url_teamid = "teamid" lookup_url_teamid = "teamid"
@ -50,4 +60,5 @@ class ListRelaysByRaceAndTeamView(generics.ListAPIView):
raceid = self.kwargs.get(self.lookup_url_raceid) raceid = self.kwargs.get(self.lookup_url_raceid)
teamid = self.kwargs.get(self.lookup_url_teamid) teamid = self.kwargs.get(self.lookup_url_teamid)
relays = Relay.objects.filter(team_pilot__team=teamid).filter(team_pilot__race=raceid) relays = Relay.objects.filter(team_pilot__team=teamid).filter(team_pilot__race=raceid)
return relays return relays
"""