diff --git a/movie_manager/models.py b/movie_manager/models.py index fa39298..0271a0f 100644 --- a/movie_manager/models.py +++ b/movie_manager/models.py @@ -5,7 +5,7 @@ from django.db.models import SET_NULL class Movie(models.Model): title = models.CharField(max_length=100) - imdb_id = models.CharField(max_length=100) + imdb_id = models.CharField(max_length=100, db_index=True, unique=True) year = models.IntegerField(null=True, blank=True) director = models.CharField(max_length=500, null=True, blank=True) actors = models.TextField(null=True, blank=True) @@ -27,8 +27,9 @@ class Movie(models.Model): class MovieList(models.Model): - name = models.CharField(max_length=100) - public = models.BooleanField(default=False) + name = models.CharField(max_length=100, db_index=True) + public = models.BooleanField(default=False, db_index=True) + slug = models.SlugField(max_length=100, default="", db_index=True) owner = models.ForeignKey(User, on_delete=models.CASCADE) movies = models.ManyToManyField(Movie) created_at = models.DateTimeField(auto_now_add=True) @@ -37,6 +38,9 @@ class MovieList(models.Model): class Meta: ordering = ["name"] + indexes = [ + models.Index(fields=["public", "owner"]), + ] def __str__(self): return self.name @@ -46,7 +50,7 @@ class Schedule(models.Model): name = models.CharField(max_length=100) owner = models.ForeignKey(User, on_delete=models.CASCADE) public = models.BooleanField(default=False) - slug = models.SlugField(max_length=100, default="") + slug = models.SlugField(max_length=100, default="", db_index=True) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) deleted_at = models.DateTimeField(null=True, blank=True)