How can I limit the number of tags associated with a movie to 6?

models.py:-

class Tag(models.Model):
    name = models.CharField(max_length=55)

    def __str__(self):
        return self.name


class Movie(models.Model):
    title = models.CharField(max_length=255)
    release_year = models.PositiveIntegerField(validators=[
        MinValueValidator(1900),
        MaxValueValidator(2100),
    ])
    duration_in_min = models.PositiveSmallIntegerField()
    imdb_rating = models.DecimalField(max_digits=2, decimal_places=1)
    rotten_tomatoes_score = models.PositiveSmallIntegerField(validators=[
        MinValueValidator(1),
        MaxValueValidator(100)
    ])
    cover_img = models.ImageField(upload_to='uploads/')
    tags = models.ManyToManyField(Tag)

    def __str__(self):
        return self.title

Probably the easiest way to do this would be in the clean method of whatever forms are updating tag assignments.

You may also want to implement something in JavaScript to help screen it on the client side when the tags are being selected.

I will add everything from the admin page. There are no forms in the user website.

You can use a custom form in the admin.