como alterar o formato de data padrão AAAA-MM-DD para dd / mm / aaaa no Django?
-
16-09-2019 - |
Pergunta
Meu dateformat localidade é dd / mm / aaaa e Django é requering AAAA-MM-DD
quando as entradas do usuário 04/11/2009 Django levanta:
_('Enter a valid date in YYYY-MM-DD format.'))
Im usando simples tipo de campo de entrada html = "text", não forms.DateField
Obrigado:)
Solução
Eu estou supondo que você está usando um forms.DateField
. Se assim for, você precisa fornecer um argumento input_formats
assim:
class MyForm(forms.Form):
start_date = forms.DateField(input_formats=['%d/%m/%Y'])
input_formats só tem uma lista dos formatos que você deseja aceitar.
http://docs.djangoproject.com/en/ dev / ref / formas / campos / # datefield para obter mais informações.
Outras dicas
Com base no post e comentários do OP, parece que há mais aqui do que apenas usando input_formats para o campo de data, mas você vai querer fazer isso. A mensagem 'Insira uma data válida no formato AAAA-MM-DD' é uma exceção e não um erro de validação de formulário. Você vai ter essa exceção se você tentar salvar uma instância de modelo usando uma seqüência de data que não é 'AAAA-MM-DD'.
O que é necessário é usar um DateField no formulário, e em seguida, instanciar o modelo usando os dados limpos, que é um objeto de data e hora. Parece que o OP foi instanciar o modelo com uma corda em vez de um objeto de data e hora.
Esta seção do Django docs discute preparação de dados datefield: https: // docs.djangoproject.com/en/dev/ref/models/instances/?from=olddocs#what-happens-when-you-save