如何在 Django 中使用 Datepicker [英] How to use Datepicker in django
问题描述
我想用 datepicker 实现一个 django 表单.我制作了我的 forms.py
from django 导入表单类 DateRangeForm(forms.Form):start_date = forms.DateField(widget=forms.TextInput(attrs={'类':'日期选择器'}))end_date = forms.DateField(widget=forms.TextInput(attrs={'类':'日期选择器'}))
和views.py
if request.method == "POST":f = DateRangeForm(request.POST)如果 f.is_valid():c = f.save(commit = False)c.end_date = timezone.now()c.save()别的:f = DateRangeForm()参数 = {}args.update(csrf(请求))args['form'] = f返回渲染(请求,'trial_balance.html',{'形式':f})
balance.html
<form action="" method="POST">{% csrf_token %}开始日期:{{ form.start_date }} 结束日期:{{ form.end_date }}<br/><输入类型=提交"名称=提交"值=查看结果"></表单>
我的那个表单的输入框中仍然没有日期选择器.我还尝试在脚本中包含我的文件链接,如我的 balance.html
<script src="{{ STATIC_URL }}js/jquery-1.3.2.min.js"></script>
日期选择器仍然无法正常工作.但是当在我的 html 文件中包含 jquery 时,它也会使我在我的 html 文件中实现的 jquery-treetable 不起作用.
如何使日期选择器工作?
您可以使用 forms.DateInput()
小部件,而不是 forms.TextInput()
:
from functools import partialDateInput = partial(forms.DateInput, {'class': 'datepicker'})类 DateRangeForm(forms.Form):start_date = forms.DateField(widget=DateInput())end_date = forms.DateField(widget=DateInput())
要使 JQuery Datepicker 工作,您必须对其进行初始化:
<script src="http://code.jquery.com/jquery-1.9.1.js"></script><script src="http://code.jquery.com/ui/1.11.0/jquery-ui.js"></script><脚本>$(document).ready(function() {$('.datepicker').datepicker();});
I want to implement a django form with datepicker. I made my forms.py
from django import forms
class DateRangeForm(forms.Form):
start_date = forms.DateField(widget=forms.TextInput(attrs=
{
'class':'datepicker'
}))
end_date = forms.DateField(widget=forms.TextInput(attrs=
{
'class':'datepicker'
}))
and views.py
if request.method == "POST":
f = DateRangeForm(request.POST)
if f.is_valid():
c = f.save(commit = False)
c.end_date = timezone.now()
c.save()
else:
f = DateRangeForm()
args = {}
args.update(csrf(request))
args['form'] = f
return render(request, 'trial_balance.html', {
'form': f
})
balance.html
<div>
<form action="" method="POST"> {% csrf_token %}
Start Date:{{ form.start_date }} End Date:{{ form.end_date }}<br/>
<input type = "submit" name = "submit" value = "See Results">
</form>
</div>
And still there is no datepicker in my input box of that form. I also tried with including my files link in the script as in my balance.html
<script src="{{ STATIC_URL }}js/jquery-1.3.2.min.js"></script>
still the datepicker is not working. But when including jquery in my html file, it also makes not to work jquery-treetable which I have implemented in my html file.
How to make the datepicker work ?
You can use forms.DateInput()
widget, instead of forms.TextInput()
:
from functools import partial
DateInput = partial(forms.DateInput, {'class': 'datepicker'})
class DateRangeForm(forms.Form):
start_date = forms.DateField(widget=DateInput())
end_date = forms.DateField(widget=DateInput())
To make JQuery Datepicker work, you have to initialise it:
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
<script>
$(document).ready(function() {
$('.datepicker').datepicker();
});
</script>
这篇关于如何在 Django 中使用 Datepicker的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!