• 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 09/03/2022

Utilisez les fonctionnalités avancées de l’ORM et des gabarits Django

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

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'))