def validate(self, value, model_instance):
        """
        Validates value and throws ValidationError. Subclasses should override
        this to provide validation logic.
        """
        # pylint: disable=newstyle
        super(TimeZoneField, self).validate(
            value=self.get_prep_value(value),
            model_instance=model_instance
        )

        # Insure the value is can be converted to a timezone
        self.to_python(value)
Validates value and throws ValidationError. Subclasses should override
        this to provide validation logic.