【发布时间】:2018-01-11 07:17:39
【问题描述】:
我正在创建一个包含datetime 范围选择的filter。我希望用户能够以这种格式输入日期:24.08.2017 17:09
从文档中,可以指定一个小部件(来自django.forms)并且小部件具有属性input_formats。
所以这将是一个解决方案:
datetime_range = django_filters.DateTimeFromToRangeFilter(method='datetime',
label=u'Čas od do',widget=forms.widgets.DateTimeInput(format="%D.%m.%Y %H:%M:%S")
问题在于它使用了DateTimeFromToRangeFilter,它使用了两个DateTimeInput 字段。因此,如果我指定小部件,它会呈现一个 DateTimeInput 而不是两个输入。
那么问题来了,如何指定格式(不改变小部件)?
我试图在__init__(...) 中指定input_formats,但它会引发:
异常值:无法设置属性
def __init__(self,*args,**kwargs):
self.base_filters['datetime_range'].field = (forms.DateTimeField(input_formats=["%D.%m.%Y %H:%M"]),forms.DateTimeField(input_formats=["%D.%m.%Y %H:%M"]))
【问题讨论】:
标签: python django django-forms django-filter django-widget