Django forms.DateTimeField изменяет тип ввода данных

Я хочу изменить тип ввода forms.DateTimeField на "d/m/y H:M". Как я могу это сделать? Я пробовал это, но ничего не получилось:

travel_on = forms.DateTimeField(input_formats='%m/%d/%y %H:%M')

Вот моя модель билета:

User = settings.AUTH_USER_MODEL
class Ticket(models.Model):
    from_station = models.CharField(max_length=30)
    to_station = models.CharField(max_length=30)
    purchased_on = models.DateTimeField(default=timezone.now)
    travel_on = models.DateTimeField()
    customer = models.ForeignKey(User,on_delete=models.CASCADE)

    def __str__(self):
        return f"Customer:{self.customer.username},From:{self.from_station},To:{self.to_station},Travel on:{self.travel_on},Purchased on:{self.purchased_on}"    

Форма моего билета:

from .models import Ticket
from django import forms

class TicketForm(forms.ModelForm):
    travel_on = forms.DateTimeField(input_formats='%m/%d/%y %H:%M')

    class Meta:
        model = Ticket
        fields = ('from_station','to_station','travel_on')

Как говорится в документации по input_formats: :

input_formats

Список форматов , используемых для попытки преобразования строки в действительный объект datetime.date..

Таким образом, вы должны передать это как:

travel_on = forms.DateTimeField(input_formats=['%d/%m/%y %H:%M'])

поэтому вы обернете это в список. Если шаблон не работает, Django будет переходить к следующему шаблону, пока шаблон не совпадет или пока не будут исчерпаны все форматы ввода.

Обратите внимание, что %y принимает только последние две цифры года, поэтому вы должны записать это как 17/08/21 15:39

Вернуться на верх