class Student(models.Model):
name = models.CharField(max_length=100)
class Course(models.Model):
title = models.CharField(max_length=100)
class Enrollment(models.Model):
student = models.ForeignKey(Student, on_delete=models.CASCADE)
course = models.ForeignKey(Course, on_delete=models.CASCADE)
grade = models.CharField(max_length=2)
enrollment_date = models.DateField()
# Prasath wants to retrieve all courses for a student named 'Prasath'
student = Student.objects.get(name='Prasath')
courses = student.course_set.all()Django Model Relationships: ManyToMany with Through Model
The code will work correctly and return all courses for Prasath.
The code will raise an AttributeError because course_set doesn't exist; you must query through: Enrollment.objects.filter(student=student).values_list('course', flat=True).
The code will return only the grade field instead of Course objects.
The code requires defining a ManyToMany field in the Student model to work.
Show answer & explanationAnswer
Correct answer
The code will raise an AttributeError because course_set doesn't exist; you must query through: Enrollment.objects.filter(student=student).values_list('course', flat=True).
Explanation
When using a through model with ManyToMany, you cannot directly access the related objects via the reverse relation. You must query through the Enrollment model using filter() or create a proper ManyToMany field with through parameter.
All 30 Django Models and Database Design questions
- 1.What is the primary purpose of Django Models?
- 2.Which field type should be used to store an email address in a Django Model?
- 3.What does the Meta class inside a Django Model do?
- 4.Which relationship type is used when one model can have many instances of another model?
- 5.What is the purpose of the `__str__` method in a Django Model?
- 6.Which field attribute makes a field mandatory in Django Models?
- 7.What does the `on_delete` parameter do in a ForeignKey relationship?
- 8.Which of the following is a valid Django field type for storing boolean values?
- 9.What is the default behavior when you don't specify `null=True` for a field in Django?
- 10.Which method is used to retrieve a single object from the database in Django?
- 11.Understanding Django Model Meta Options
- 12.Scenario:
- 13.Django QuerySet Filter vs Get Method
- 14.Coding:
- 15.Scenario:
- 16.Understanding Django Model Inheritance
- 17.Coding:
- 18.Scenario:
- 19.Django Model Manager and QuerySet Methods
- 20.Coding:
- 21.Django Model Inheritance Strategy Selection
- 22.Django QuerySet Optimization with select_related vs prefetch_related
- 23.Django Model Field Choices and Validation
- 24.Django Model Relationships:
- 25.Django Model Signals and Database Consistency
- 26.Django Model Meta Options:
- 27.Django Model Managers and Custom QuerySets
- 28.Django Model Field:
- 29.Django Model Validation:
- 30.Django Model Aggregation and Annotation
