Отличие OneToOne и ManyToOne(Foreignkey) field

Какое между ними различие? Я работал с many to one field, но узнал что существует oneToOne field и сколько бы не читал про них, непонимаю различия. Если можете то объясните понятно и другие виды( ManyToMany, ManyToOne, OneToOne)

ManyToManyField

Объект первой модели может одновременно ассоциироваться с несколькими объектами второй модели. Например, один студент может посещать несколько курсов.

from django.db import models
 
class Course(models.Model):
    name = models.CharField(max_length=30)
 
class Student(models.Model):
    name = models.CharField(max_length=30)
    courses = models.ManyToManyField(Course)

введите сюда описание изображения

OneToManyField

Отношение один ко многим (One to Many)

Например, одна компания может выпускать несколько товаров

from django.db import models
 
class Company(models.Model):
    name = models.CharField(max_length=30)
 
class Product(models.Model):
    company = models.ForeignKey(Company, on_delete = models.CASCADE)
    name = models.CharField(max_length=30)
    price = models.IntegerField()

Модель Company представляет производителя и является главной моделью, а модель Product представляет товар компании и является зависимой моделью.

Вернуться на верх