ManyToManyField.through
Django will automatically generate a table to manage many-to-many relationships. However, if you want to manually specify the intermediary table, you can use the through
option to specify the Django model that represents the intermediate table that you want to use.
The most common use for this option is when you want to associate extra data with a many-to-many relationship.
If you don’t specify an explicit through
model, there is still an implicit through
model class you can use to directly access the table created to hold the association. It has three fields to link the models.
If the source and target models differ, the following fields are generated:
-
id
: the primary key of the relation. -
<containing_model>_id
: theid
of the model that declares theManyToManyField
. -
<other_model>_id
: theid
of the model that theManyToManyField
points to.
If the ManyToManyField
points from and to the same model, the following fields are generated:
-
id
: the primary key of the relation. -
from_<model>_id
: theid
of the instance which points at the model (i.e. the source instance). -
to_<model>_id
: theid
of the instance to which the relationship points (i.e. the target model instance).
This class can be used to query associated records for a given model instance like a normal model.
Please login to continue.