Отличие 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 представляет товар компании и является зависимой моделью.