<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def validate_unique_slug(self):
 """ Ensure slug is unique for this model. This check is aware of publishing but is otherwise fairly basic and will need to be customised for situations where models with slugs are not in a flat hierarchy etc. """

        clashes_qs = type(self).objects.filter(slug=self.slug)
        if self.pk:
            clashes_qs = clashes_qs.exclude(pk=self.pk)
        if isinstance(self, PublishingModel):
            clashes_qs = clashes_qs.filter(
                publishing_is_draft=self.publishing_is_draft)
        if clashes_qs:
            raise ValidationError(
                "Slug '%s' clashes with other items: %s"
                % (self.slug, clashes_qs))