如何将 jquery datepicker 从模板传递到 python Django 中查看?
Posted
技术标签:
【中文标题】如何将 jquery datepicker 从模板传递到 python Django 中查看?【英文标题】:How to pass jquery datepicker from template to view in python Django? 【发布时间】:2015-01-06 22:37:43 【问题描述】:我正在尝试使用 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() mydate = '2014-10-01'
【问题讨论】:
我可以建议使用winpdb
设置断点。关注these instructions for setting the breakpoint。
【参考方案1】:
除了@Daniel Roseman 的回答
data_input = forms.DateField(auto_now_add=True, widget=forms.DateInput(attrs='class':'datepicker'))
【讨论】:
【参考方案2】:你需要阅读关于 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>
【讨论】:
以上是关于如何将 jquery datepicker 从模板传递到 python Django 中查看?的主要内容,如果未能解决你的问题,请参考以下文章
jQuery UI datepicker:如何将下拉列表中的月份名称从短名称更改为长名称?
试图弄清楚如何从 jquery datepicker 中删除假期
jQuery:如何从与 datepicker 插入日期的输入字段不同的元素中激活 datepicker?
从字符串/django 对象获取 datepicker defaultdate