- 12 heures
- Moyenne
Ce cours est visible gratuitement en ligne.
course.header.alt.is_video
course.header.alt.is_certifying
J'ai tout compris !Mis à jour le 26/08/2024
Utilisez les fonctionnalités avancées de l’ORM et des gabarits Django
Compétences évaluées
- Utiliser des fonctionnalités avancées de l’ORM et des gabarits Django
Description
Les questions du quiz font référence au scénario ci-dessous :
Vous travaillez sur une application Django qui suit les résultats de courses d’athlétisme. L’application contient les modèles suivants :
class Race(models.Model):
name = models.CharField()
event_start = models.DateTimeField()
class Athlete(models.Model):
first_name = models.CharField()
last_name = models.CharField()
date_of_birth =models.DateField()
class RaceResult(models.Model):
athlete = models.ForeignKey(Athlete)
race = models.ForeignKey(Race)
position = models.IntegerField()
Question 1
L’organisateur des événements veut envoyer un message à tous les athlètes qui ont concouru dans l’événement Park Run .
Choisissez la requête qui renvoie tous ces athlètes.
Athlete.objects.filter(raceresult__race__name='Park Run')
Race.objects.filter(name='Park Run')
RaceResult.objects.filter(race__name='Park Run')
Athlete.objects.filter(race__name='Park Run')
Question 2
Que fait la requête suivante ?
from datetime import datetime Athlete.objects.filter( raceresult__position__lte=3, date_of_birth__gte=datetime(day=1, month=1, year=2000))
Elle sélectionne les athlètes qui ont fini une course à la 3e place ou en dessous, et qui sont nés en 2000 ou avant.
Elle sélectionne les athlètes qui ont fini une course à la 3e place ou au-dessus, et qui sont nés en 2000 ou après.
Elle sélectionne les athlètes qui ont fini une course à la 3e place ou au-dessus, ou qui sont nés en 2000 ou après.
Elle sélectionne les athlètes qui ont fini une course à la 3e place ou en dessous, ou qui sont nés en 2000 ou après.
Question 3
Vous organisez une course exclusivement sur invitation, ouverte aux athlètes qui ont soit :
*Fini une course à la 1re place, soit
*Fini une course de type
Marathon
dans les 3 premiers.Sélectionnez la requête qui génère le QuerySet des athlètes éligibles.
Athlete.objects.filter(raceresult__position = 1, (raceresult__position__lte=3, raceresult__race__name='Marathon'))
Athlete.objects.filter(Q(raceresult__position = 1) | ~Q(raceresult__position__lte=3, raceresult__race__name='Marathon')
Athlete.objects.filter(Q(raceresult__position = 1) & Q(raceresult__position__lte=3, raceresult__race__name='Marathon'))
Athlete.objects.filter(Q(raceresult__position = 1) | Q(raceresult__position__lte=3, raceresult__race__name='Marathon'))
- Formations jusqu’à 100 % financées
- Date de début flexible
- Projets professionnalisants
- Mentorat individuel