• Класс Meta в моделях:
    • Вложенный класс для определения метаданных модели.
    • Опции:
      • db_table: Имя таблицы в БД (по умолчанию: <app_label>_<model_name_lower>). db_table = 'my_custom_table'
      • ordering: Порядок сортировки по умолчанию для QuerySet. ordering = ['-created_at', 'name']
      • verbose_name: Человекочитаемое имя модели в единственном числе. verbose_name = 'Моя модель'
      • verbose_name_plural: Имя во множественном числе. verbose_name_plural = 'Мои модели'
      • unique_together: Кортеж или список кортежей полей, комбинация которых должна быть уникальной. unique_together = [('field1', 'field2')] (Старый способ, лучше использовать UniqueConstraint).
      • indexes: Список объектов models.Index для создания индексов в БД. indexes = [models.Index(fields=['field1', '-field2'], name='my_index')]
      • constraints: Список ограничений БД (например, models.UniqueConstraint, models.CheckConstraint).
        constraints = [  
            models.UniqueConstraint(fields=['field1', 'field2'], name='unique_field1_field2'),  
            models.CheckConstraint(check=models.Q(age__gte=18), name='age_gte_18')  
        ]  
      • abstract = True: Делает модель абстрактной (не создает таблицу в БД, используется для наследования общих полей/методов).
      • proxy = True: Делает модель прокси (использует таблицу родительской модели, но может иметь свои методы, менеджеры, Meta опции).
    • Пример Meta:
      # models.py  
      from django.db import models  
       
      class Article(models.Model):  
          title = models.CharField(max_length=200)  
          slug = models.SlugField(unique=True)  
          published_date = models.DateTimeField(null=True, blank=True)  
          # ...  
       
          class Meta:  
              db_table = 'news_articles'  
              ordering = ['-published_date', 'title']  
              verbose_name = 'Статья'  
              verbose_name_plural = 'Статьи'  
              indexes = [  
                  models.Index(fields=['slug']),  
              ]  
       
          def __str__(self):  
              return self.title

〰〰〰 𓆝 𓆟 𓆞 𓆝 𓆟 𓆝 𓆟 𓆞 〰〰〰