【问题标题】:Issue with Jquery Datepicker in Django appDjango应用程序中的Jquery Datepicker问题
【发布时间】:2020-03-12 23:44:17
【问题描述】:

我是 django 新手,正在尝试构建我的第一个预订应用程序。我有用于预订的工作表格,但在实施查询表格以根据日期检索预订结果时遇到了麻烦。我正在使用 Jquery 日期选择器并使用 POST 方法来获取预订信息(以下是代码)。当我打印 request.POST 时,我无法将日期从 jquery 日期选择器传递给视图。我只得到无响应。我一直在寻找解决方案,但无法通过。请提出解决方法。

提前致谢。

HTML 代码:

    <head>
        <meta charset="utf-8" />
        <title>Form</title>
        <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>
    </head>
    <body>
        <form action="" method="post">{% csrf_token %}
            <!--{{ form.date }} -->
            <p>Date: <input type="text" id="datepicker"></p>
            <!-- The rest of my form -->
            <input type="submit" value="submit" />
        </form>

{% for rom in qdate%}
{{rom.room}} {{rom.Purpose}} {{rom.start_time}} {{rom.end_time}} </br>
{%endfor%}
{% else %}

表格: 我的 forms.py 代码显示 Jquery datepicker 小部件并传递日期输入

from functools import partial
DateInput = partial(forms.DateInput, {'class': 'datepicker'})

# import django_filters
class DateFilter(forms.Form):
  date_input = forms.DateField(input_formats=['%m/%d/%Y',], required=False, widget=forms.DateInput(format = '%m/%d/%Y'))

查看次数: 我的 view.py 代码动态查询并显示大于或等于查询日期的预订

class qdate(TemplateView):
    template_name='calc.html'

    def post(self, request):
        form = DateFilter(request.POST)
        if request.POST and form.is_valid():
            print(request.POST.get('date_input'))
            dater = EventBooking.objects.filter(date__gte=form)
            args = {'qdate':dater}
            return render(request, self.template_name, args)
        else:
            return HttpResponse('Well Hello there!')

型号: 我的模型中的日期字段。

    date=models.DateField()

【问题讨论】:

    标签: jquery django django-models django-forms django-views


    【解决方案1】:

    Django 使用的表单不​​是用于接收日期选择器的表单,在输入中添加标签名称,您将能够在视图中接收日期数据request.POST.get('date_input')

    <p>Date: <input name="date_input" type="text" id="datepicker"></p>
    

    或者您可以使用表单来代替

    <form action="" method="post">{% csrf_token %}
        {{ form.date_input }}
        <input type="submit" value="submit" />
    </form>
    

    你的 jquery 会变成:

    $(document).ready(function() {
        $('input[name=date_input]').datepicker();
    });
    

    【讨论】:

    • 谢谢你这是一个愚蠢的错误,我们浪费了很多时间,非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 2010-11-19
    相关资源
    最近更新 更多