0

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

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

模型.py

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

表格.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,
    })

表格.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 中调用。它调用,我可以选择一个刚刚找到的日期,但我不知道如何获取我选择的日期并将其粘贴到我的数据库中。

谢谢你的帮助。

4

2 回答 2

0

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

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

于 2012-07-09T21:36:33.870 回答
0

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

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

要设置 a 的输入格式,DateField您可以这样做:

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

有关更多详细信息,请参阅此内容。

如果您想提供字段格式的格式,您可以执行以下操作:

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

有关格式的详细信息,请参阅此内容。

笔记:

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

此外,您可以使用ModelForms您的表格。

于 2012-07-16T23:24:17.940 回答