• 12 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 8/25/21

Use Advanced Functionalities of the Django ORM and Templates

Log in or subscribe for free to enjoy all this course has to offer!

Evaluated skills

  • Use advanced functionalities of the Django ORM and templates

Description

Refer to the following scenario for the quiz questions: 

You are working on a Django application that tracks the results of athletic races. The application contains the following models:

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

    The events organizer wants to send a message to all of the athletes who have competed in the  Park Run  event. 

    Select the query that returns all of these athletes. 

    • 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

    What does the following query do?

    from datetime import datetime
    Athlete.objects.filter(
    raceresult__position__lte=3,
    date_of_birth__gte=datetime(day=1, month=1, year=2000))
    • Selects the athletes who finished 3rd or worse in a race and were born on or before 2000.

    • Selects the athletes who have finished 3rd or better in a race and were born on or after 2000.

    • Selects the athletes who finished 3rd or better in a race or were born on or after 2000.

    • Selects the athletes who have finished 3rd or worse in a race or were born on or after 2000.

  • Question 3

    You are curating an invitation-only race that is open to athletes who have either:

    * Placed 1st in any race.

    * Placed in the top three of a Marathon  race.

    Select the query that retrieves the QuerySet of eligible athletes.

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