Validar formulário WTForm com base no botão clicado

No meu formulário, tenho dois botões que eu uso para enviar o formulário. Um botão exclui os arquivos selecionados (apresentados em uma tabela, uma caixa de seleção para um objeto) e o outro os seleciona para processamento.

Quando os arquivos são selecionados na exclusão, nenhuma validação é necessária (além de verificar se pelo menos um arquivo foi selecionado). No entanto, para o processamento, preciso ter certeza de que existe exatamente um arquivo de uma determinada extensão.Basicamente, preciso de diferentes processos de validação com base em qual botão o usuário clicou.

Como posso fazer isso da melhor maneira? Eu sei que posso executar a validação na exibição, mas eu preferiria validar isso dentro do formulário, pois é mais limpo.

Aqui estão os formulários em questão:

class ButtonWidget(object):
    """A widget to conveniently display buttons.
    """
    def __call__(self, field, **kwargs):
        if field.name is not None:
            kwargs.setdefault('name', field.name)
        if field.value is not None:
            kwargs.setdefault('value', field.value)
        kwargs.setdefault('type', "submit")
        return HTMLString('<button %s>%s</button>' % (
            html_params(**kwargs),
            escape(field._value())
            ))

class ButtonField(Field):
    """A field to conveniently use buttons in flask forms.
    """
    widget = ButtonWidget()

    def __init__(self, text=None, name=None, value=None, **kwargs):
        super(ButtonField, self).__init__(**kwargs)
        self.text = text
        self.value = value
        if name is not None:
            self.name = name

    def _value(self):
        return str(self.text)

class MultiCheckboxField(SelectMultipleField):
    """
    A multiple-select, except displays a list of checkboxes.

    Iterating the field will produce subfields, allowing custom rendering of
    the enclosed checkbox fields.
    """
    widget = ListWidget(prefix_label=False)
    option_widget = CheckboxInput()

class ProcessForm(Form, HiddenSubmitted):
    """
    Allows the user to select which objects should be
    processed/deleted/whatever.
    """

    PROCESS = "0"
    DELETE = "-1"

    files = MultiCheckboxField("Select", coerce=int, validators=[
        Required()
        ]) # This is the list of the files available for selection
    process_button = ButtonField("Process", name="action", value=PROCESS)
    delete_button = ButtonField("Delete",  name="action", value=DELETE)

    def validate_files(form, field):
        # How do I check which button was clicked here?
        pass

questionAnswers(1)

yourAnswerToTheQuestion