Назад к вопросам
Junior
65
questionbank
Какие существуют модели в Django?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Django модели — это классы Python, которые представляют структуру данных в базе данных. Каждая модель соответствует одной таблице в базе данных.
Основные типы полей моделей:
CharField: Строка (с ограничением по длине).TextField: Длинный текст.IntegerField: Целое число.FloatField: Число с плавающей точкой.BooleanField: Логическое значение (True/False).DateField: Дата.DateTimeField: Дата и время.EmailField: Поле для email-адреса.URLField: Поле для URL.FileField: Поле для загрузки файлов.ImageField: Поле для загрузки изображений (наследует отFileField).
Отношения между моделями:
ForeignKey: Отношение "один-ко-многим".# Каждая статья принадлежит одному автору class Article(models.Model): author = models.ForeignKey(Author, on_delete=models.CASCADE) title = models.CharField(max_length=100)ManyToManyField: Отношение "многие-ко-многим".# У каждой статьи может быть несколько тегов, и у каждого тега несколько статей class Article(models.Model): tags = models.ManyToManyField(Tag) title = models.CharField(max_length=100)OneToOneField: Отношение "один-к-одному".# У каждого пользователя может быть только один профиль class UserProfile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) bio = models.TextField()
Каждая модель имеет необходимые атрибуты и методы:
objects: Стандартный менеджер, используемый для выполнения запросов к базе данных.__str__: Метод, возвращающий строковое представление объекта модели.class Article(models.Model): title = models.CharField(max_length=100) def __str__(self): return self.title # Отображает название статьи в админке и консоли
Модели определяются в файле models.py приложения. После определения моделей необходимо выполнить миграции (makemigrations, migrate) для создания соответствующих таблиц в базе данных.