如何在 Django 中使用 Datepicker [英] How to use Datepicker in django

查看:24
本文介绍了如何在 Django 中使用 Datepicker的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用 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 }}&nbsp;&nbsp;结束日期:{{ 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 }}&nbsp;&nbsp; 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆