Я бы добавил пользовательское ограничение для модели Director:
from django.db.models import F, Q, Model, ManyToManyField, CharField
class Director(Model):
movies = ManyToManyField(Movie)
genre = CharField(max_length=128)
class Meta:
constraints = [
models.CheckConstraint(
check=Q(genre=F(genre)),
name='correct_genre'
)
]