繁体   English   中英

如何将jquery datepicker从模板传递到python Django中的视图?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM