1
resposta

Erro data atual.

Error na validação da data de hoje, no validation.py.

  • Trecho do codigo:

    def data_ida_menor_que_data_hoje(data_ida, data_pesquisa, lista_de_erros):
      """verifica se data de ida é menor que data de hoje"""
      if data_ida < data_pesquisa:
          lista_de_erros['data_ida'] = 'Data de ida não pode ser menor que hoje'
  • Error:

    Exception Type: TypeError at /minha_consulta
    Exception Value: '<' not supported between instances of 'str' and 'datetime.date'
  • Solução:

    def data_ida_menor_que_data_hoje(data_ida, data_pesquisa, lista_de_erros):
      """verifica se data de ida é menor que data de hoje"""
      if data_ida < data_pesquisa.strftime("%d/%m/%y"):
          lista_de_erros['data_ida'] = 'Data de ida não pode ser menor que hoje'

Quando chegar na aula 05.Modelos e Formulários / parte 3 ModelForm retirar o: .strftime("%d/%m/%y"):

1 resposta

Olá Heron, tudo bem com você?

Peço desculpas pela demora no retorno.

O erro apresentado, Exception Value: '<' not supported between instances of 'str' and 'datetime.date', informa que não é possível realizar a comparação entre um objeto do tipo str e um objeto do tipo datetime.date. Com isso, temos a indicação de que o objeto criado pelo campo data_ida é um objeto do tipo str.

Esse erro pode estar associado ao tipo de campo escolhido para o formulário, para campos que conterá datas, devemos optar pelo uso do forms.DateField, assim teremos a criação por baixo dos panos um objeto do tipo datetime.date.

Para realizar a correção, peço que no arquivo passagens/forms.py verifique a declaração dos campos data_ida, data_volta e data_pesquisa. Eles devem ser declarados como apresentados abaixo fazendo o uso do campo forms.DateField.

data_ida = forms.DateField(label='Ida',widget=DatePicker())
data_volta = forms.DateField(label='Volta', widget=DatePicker())
data_pesquisa = forms.DateField(label='Data da pesquisa', disabled=True, initial=datetime.today)

Após as mudanças, salve o arquivo e realize o envio de um novo formulário.

Fico à disposição em caso de dúvidas.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!