Como validar a restrição de exclusividade na chave estrangeira (django)

Eu tenho a seguinte estrutura de dados (simplificada):

Site
-> Zone
   -> Room
      -> name

Eu quero que o nome de cada sala seja único para cada site.

Eu sei que se eu quisesse exclusividade para cada Zona, eu poderia fazer:

class Room(models.Model):
    zone = models.ForeignKey(Zone)
    name = models.CharField(max_length=255) 

    class Meta:
        unique_together = ('name', 'zone')

Mas eu não posso fazer o que eu realmente quero, que é:

class Room(models.Model):
    zone = models.ForeignKey(Zone)
    name = models.CharField(max_length=255) 

    class Meta:
        unique_together = ('name', 'zone__site')

Eu tentei adicionar um método validate_unique, como sugerido poressa questão:

class Room(models.Model):
    zone = models.ForeignKey(Zone)
    name = models.CharField(max_length=255) 

    def validate_unique(self, exclude=None):
        qs = Room.objects.filter(name=self.name)
        if qs.filter(zone__site=self.zone__site).exists():
            raise ValidationError('Name must be unique per site')

        models.Model.validate_unique(self, exclude=exclude)

mas devo estar entendendo mal o ponto / implementação de validate_unique, porque ele não está sendo chamado quando eu salvo um objeto Room.

Qual seria a maneira correta de implementar essa verificação?

questionAnswers(3)

yourAnswerToTheQuestion