В Django связывание двух таблиц осуществляется с помощью отношений моделей. Django предлагает несколько типов отношений, включая OneToOne, ForeignKey и ManyToMany.
OneToOne связь устанавливает связь между двумя моделями таким образом, что каждый экземпляр одной модели связан с одним экземпляром другой модели. Для установки OneToOne связи между таблицами, вам необходимо добавить поле OneToOneField в определение модели. Например:
from django.db import models class ModelA(models.Model): ... class ModelB(models.Model): linked_model = models.OneToOneField(ModelA, on_delete=models.CASCADE) ...
ForeignKey связь устанавливает связь между двумя моделями таким образом, что каждый экземпляр одной модели может быть связан с несколькими экземплярами другой модели. Для установки ForeignKey связи между таблицами, вам необходимо добавить поле ForeignKey в определение модели. Например:
from django.db import models class ModelA(models.Model): ... class ModelB(models.Model): linked_model = models.ForeignKey(ModelA, on_delete=models.CASCADE) ...
ManyToMany связь устанавливает связь между двумя моделями таким образом, что каждый экземпляр одной модели может быть связан с несколькими экземплярами другой модели, и наоборот. Для установки ManyToMany связи между таблицами, вам необходимо добавить поле ManyToManyField в определение модели. Например:
from django.db import models class ModelA(models.Model): ... class ModelB(models.Model): linked_models = models.ManyToManyField(ModelA) ...
После объявления отношений между моделями, Django автоматически создаст соответствующие поля в таблицах базы данных для хранения связи между ними. Вы также можете указать различные параметры, такие как on_delete, blank, null и related_name, для настройки поведения связи.
Это лишь базовый обзор о том, как связать две таблицы в Django. В реальных проектах с множеством таблиц и сложными связями, вы можете использовать более сложные конструкции, такие как связи ManyToMany с дополнительными полями через промежуточную модель или связи через несколько уровней с ForeignKeys.
Для более детальной информации об отношениях моделей в Django, рекомендуется обратиться к документации Django: https://docs.djangoproject.com/en/3.2/topics/db/models/#relationships