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