[英]How to pass jquery datepicker from template to view in python Django?
我正在尝试使用jquery-ui,datepicker将日期值传递给views.py,其中我已设置查询以使用pyodbc从mysql提取数据,但不确定我在这里缺少什么。 我是Django的新手。 请帮忙。
模板
<form action = "" method="POST">{% csrf_token %}
<p>Date: <input type="text" id="datepicker"></p>
</form>
datepicker.js
var stringDate = '2014-09-01T12:00:00+00:00'
var date = new Date(stringDate)
$(function() {
$( "#datepicker" ).datepicker({
minDate: date,
maxDate: "dateToday",
dateFormat: 'yy-mm-dd',});
});
views.py
DateInput = partial(forms.DateInput, {'class': 'datepicker'})
class DateRangeForm(forms.Form):
data_input = forms.DateField(widget=DateInput())
def rev_dollar(request):
if request.method == "POST":
mydate = DateRangeFrom()
else:
mydate = now.date().isoformat()
con_a= pyodbc.connect('DSN=')
sql = """
select a, b from table
where date = %s , (mydate)
"""
pd.read_sql(sql, con_a)
我想要的是如果未选择表单,则mydate = curdate() <-在sql中,如果选择了日期,则mydate ='2014-10-01' <-日期选择
您需要阅读有关Django表单的非常好的文档。
您在代码中的任何时候都不会将POST请求的值传递给表单。 另外,您也不会做任何事情来使表格显示日期。 因此,毫不奇怪,您的代码不起作用。
这是您需要做的:
mydate = now.date().isoformat()
if request.method == 'POST':
form = DateRangeFrom(request.POST)
if form.is_valid():
mydate = form.cleaned_data('data_input')
另外,您需要为HTML字段设置name
属性。 尽管自定义表单以来,您应该使用以下表单:
<form action = "" method="POST">{% csrf_token %}
{{ form.data_input }}
<input type="submit">
</form>
除了@Daniel Roseman答案
data_input = forms.DateField(auto_now_add=True, widget=forms.DateInput(attrs={'class':'datepicker'}))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.