如何在django中使用Datepicker

Bis*_*rai 12 django jquery datepicker

我想用datepicker实现一个django表单.我制作了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'
                                })) 
Run Code Online (Sandbox Code Playgroud)

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
    })
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

而且我的输入框中仍然没有该状态的日期选择器.我也试过在我的balance.html中包含脚本中的文件链接

<script src="{{ STATIC_URL }}js/jquery-1.3.2.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

仍然是datepicker不工作.但是当我在我的html文件中包含jquery时,它也不会使我在html文件中实现的jquery-treetable工作.

如何使datepicker工作?

nie*_*kas 33

您可以使用forms.DateInput()小部件,而不是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())
Run Code Online (Sandbox Code Playgroud)

要使JQuery Datepicker工作,您必须初始化它:

<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>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这太容易了。您可能希望包含指向 Datepicker css 的链接:`&lt;link rel="stylesheet" href="//code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css"&gt;` (2认同)