我的django形式和模型中有两个字段,一个是日期,另一个是时间。我想在数据库中提交日期和时间。但我还没有成功。请提供一些可以实现的代码。
form.py
class dated1(forms.ModelForm):
cur_date=forms.DateField()
cur_time=forms.TimeField(datetime.time)
class Meta:
model=dated
model.py
class dated(models.Model):
cur_date = models.DateField()
cur_time = models.TimeField()
def __unicode__(self):
return self.cur_date
view.py
def datetime1(request):
if request.method =='POST':
form = dated1(request.POST)
if form.is_valid():
f=dated(
cur_date=request.POST('cur_date'),
cur_time=request.POST('cur_time'),
)
f.save()
return HttpResponse("Success")
else:
return HttpResponse("Failure")
else:
form = dated1()
return render(request, 'formdata/dt.html',{'form': form})
答案 0 :(得分:0)
而不是
f=dated(
cur_date=request.POST('cur_date'),
cur_time=request.POST('cur_time'),
)
f.save()
试试这个
f = form.save(commit=False)
f.save()
答案 1 :(得分:0)
在模板中,我做了一些更改:
{% extends 'formdata/template1.html' %}
{% block js %}
<script type="text/javascript">
$(function()
{
$( "#id_cur_date" ).datepicker({dateFormat: $.datepicker.ATOM});
});
$(function()
{
$('#id_cur_time').timepicker({timeFormat: 'H:i:s'});
});
</script>
{% endblock %}
{% block content %}
<form id="dtform" method="post" action="#">
{% csrf_token %}
<h3>Date:</h3>
{{ form.cur_date }}
<h3>Time:</h3>
{{ form.cur_time }} <br>
<input type="submit" value="submit">
</form>
{% endblock %}
然后我在views.py
中做了一些更改def datetime1(request):
if request.method =='POST':
form = dated1(request.POST)
f=dated(
cur_date=request.POST['cur_date'],
cur_time=request.POST['cur_time']
)
f.save(force_insert=True)
return HttpResponse("Success")
else:
form = dated1()
return render(request, 'formdata/dt.html',{'form': form})
现在当我删除&#34;如果form.is_valid()&#34;在视图中,它已经以我想要的标准格式成功提交。我还通过jQuery添加了日期选择器和时间选择器。 有了这个答案我的问题是;为什么声明&#34;如果form.is_valid()&#34;在上述情况下没有工作。 @abhi @Paul Collingwood