django - Change DateInput widget's format to SHORT_DATE_FORMAT -
i'm trying set format of dateinput short_date_format. however, following code not work work.
forms.py
from django.conf.global_settings import short_date_format class eventform(modelform): # ... startdate = forms.datefield( widget=forms.dateinput( format=short_date_format ) ) in views.py, example entry read database , form created using form = eventform(instance=event1). template shows widget using {{form.startdate}}. input shows correctly, it's value not date "m/d/y".
it work if i'd set format='%m/%d/%y', however, defeats purpose of locale-aware short_date_format. how can solve that?
a possible solution overwrite dateinput widget follows.
from django.template.defaultfilters import date class shortformatdateinput(dateinput): def __init__(self, attrs=none): super(dateinput, self).__init__(attrs) def _format_value(self, value): return date(value, formats.get_format("short_date_format")) it overwrites super constructor date format cannot changed manually anymore. instead i'd show date defined in short_date_format. that, _format_value method can overwritten reuse date method defined django.templates.
Comments
Post a Comment