我正在寻找这个基本问题的解决方案:我使用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中调用。它打电话,我可以选择找到的日期,但我不知道如何选择我选择的日期并将其粘贴到我的数据库中。
感谢您的帮助。
答案 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
用于表单。