Back to questions
Junior — Middle
55
Каким образом можно установить отношения между моделями в рамках Django ORM?
Companies where asked
Оптимакрос
Диджитал сектор
Answer from AI
sobes.tech AI
В Django ORM отношения между моделями устанавливаются с помощью специальных полей, которые определяют тип связи:
-
ForeignKey (один ко многим): Связывает одну запись модели с несколькими записями другой.
-
OneToOneField (один к одному): Связывает одну запись модели с одной записью другой.
-
ManyToManyField (многие ко многим): Позволяет связывать множество записей одной модели с множеством записей другой.
Пример:
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.ForeignKey(Author, on_delete=models.CASCADE) # один автор - много книг
class Profile(models.Model):
user = models.OneToOneField('auth.User', on_delete=models.CASCADE) # один профиль - один пользователь
class Student(models.Model):
name = models.CharField(max_length=100)
courses = models.ManyToManyField('Course') # студент может посещать много курсов
class Course(models.Model):
title = models.CharField(max_length=200)
Таким образом, используя эти поля, можно явно задавать и управлять связями между моделями в базе данных.