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

Et si vous obteniez un diplôme OpenClassrooms ?
  • Formations jusqu’à 100 % financées
  • Date de début flexible
  • Projets professionnalisants
  • Mentorat individuel
Trouvez la formation et le financement faits pour vous