Создание форм Django. В ShowField используется локальный формат даты
Я пытаюсь найти простой способ создания форм, которые показывают даты в австралийском формате (дд / мм / гггг). Это был единственный способ найти это. Кажется, должно быть лучшее решение.
Что следует отметить:
Создан новый виджет, который отображает значение даты в формате дд / мм / ггггСоздано новое поле даты для добавления строки формата даты поиска к списку значений, которые он пытается использоватьЯ полагаю, что идеальным решением было бы поле даты, которое автоматически локализовалось, но это не сработало для меня (strftime не был дружественным к юникоду, но я не очень старался)
Я что-то пропустил? Есть ли более элегантное решение? Это надежный подход?
from models import *
from django import forms
import datetime
class MyDateWidget(forms.TextInput):
def render(self, name, value, attrs=None):
if isinstance(value, datetime.date):
value=value.strftime("%d/%m/%Y")
return super(MyDateWidget, self).render(name, value, attrs)
class MyDateField(forms.DateField):
widget = MyDateWidget
def __init__(self, *args, **kwargs):
super(MyDateField, self).__init__(*args, **kwargs)
self.input_formats = ("%d/%m/%Y",)+(self.input_formats)
class ExampleForm(ModelForm):
class Meta:
model=MyModel
fields=('name', 'date_of_birth')
date_of_birth = MyDateField()