リレーションされているモデルのデータを取得する(1側から多側)
model = Company.objects.prefetch_related('person').get(pk=1) for person in model.person.all(): print(person.name)
1側のモデル.objects.select_related('リレーションのフィールド名').get(条件)やfilter(条件)やall()など
先ほどのselect_relatedの場合は、多側からだったので、自身が決まれば紐づいているモデルが確定したのに対して、prefetch_relatedは、1側からなので、自身が決まっても、自身に紐づいているモデルが複数あるという状態になります。
Company(1)に対してPerson(多)がある場合1つのCompanyに紐づいているPersonは複数あるという関係です。
このように紐づいたモデルが複数あるときは、それらがリスト形式で紐づきます。
なので、アクセスするにはselect_relatedとは違い、for文で繰り返し処理をするかインデックスを指定してアクセスすることになります。