Назад к вопросам
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) для создания соответствующих таблиц в базе данных.