基本 - 将jquery插件添加到django表单

时间:2012-07-09 21:27:07

标签: jquery django

我正在寻找这个基本问题的解决方案:我使用jquery插件(datepicker)让用户选择日期。如何在django形式中使用它?

formset似乎不是正确的解决方案,但也没有制作和调用我自己的小部件。我没有继续尝试新的选择,而是寻找一些方向。这是一个简单的测试场景。

models.py

    class DateTest(models.Model):
        date_nm = models.CharField(max_length=120)
        fromdate = models.DateTimeField()

forms.py

def datetest_save_page(request):
    if request.method == 'POST': 
        form = DateTestSaveForm(request.POST)
        if form.is_valid():
            date_nm, dummy = DateTest.objects.get_or_create(
                date_nm=form.cleaned_data['date_nm']
            )
            fromdate = form.cleaned_data['fromdate']
            return HttpResponseRedirect('datetest_page.html') 
    else:
        form = DateTestSaveForm()
    return render_to_response('datetest_save.html', {
        'form': form,
    })

forms.py

class DateTestSaveForm(forms.Form):
    date_nm = forms.CharField(
        label=u'Date Name',
        max_length=30
    )
    fromdate = forms.DateTimeField()

我在base.html中设置了datepicker,并在datetest_save.html中调用。它打电话,我可以选择找到的日期,但我不知道如何选择我选择的日期并将其粘贴到我的数据库中。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

实际上有很多名为“datepicker”的jQuery插件,因此很难知道你可能在这里使用了哪些。但是,如果您不想创建自定义表单字段,则需要找到一个可以自定义使用的日期格式的库。具体而言,字段值必须采用以下格式:“YYYY-MM-DD”。

如果您不能或不希望以该格式使用日期,那么您将必须创建一个自定义表单字段,该字段将自动将您选择的日期格式解析为Django可用的内容。

答案 1 :(得分:0)

听起来像是指jQuery UI datepicker。您可以设置日期选择器的格式。

此外,您无需为日期/时间输入创建自定义字段。你的意思是使用DateTimeField吗?如果您只需要日期,则可以在表单和模型中使用DateField

要设置DateField的输入格式,您可以执行以下操作:

fromdate = forms.DateField(input_formats=['%Y-%m-%d'])

See this 了解详情。

如果您想提供格式化字段的格式,您可以这样做:

fromdate = forms.DateField(input_formats=['%Y-%m-%d'],
                           widget=forms.DateInput(format='%Y-%m-%d'))

See this 有关格式的详细信息。

注意:

最好使用YYYY-MM-DD格式,因为新的HTML5日期字段只允许您使用此格式。

此外,您可以将ModelForms用于表单。