我有一个模特
class Unit(models.Model):
date = models.DateTimeField()
name = models.CharField(max_length = 128)
然后我有一个js jquery ui datepicker的视图。然后我有一个带
的ajax post函数data_send['date'] = $('#date').value;
data_send['name'] = $('#name').value;
$.post("/url_1/",data_send, function(data_recieve){
alert(data_recieve);
});
然后在视图中我试图保存像
这样的单位def url_1(request):
unit = Unit.objects.get(pk = 1)
unit.date = request.POST['date']
unit.name = request.POST['name']
unit.save()
return HttpResponse('ok')
Unit.name更改,但不是unit.date。我用django 1.3。我没有csrf保护。我从服务器收到'ok'。 为什么unit.date不保存?
由于
答案 0 :(得分:7)
由于django datetime字段是datetime.datetime
python实例的表示,我想在插入数据库之前确保我有一个有效的实例。
您可以使用datetime模块来实现此目的,而不是将unit.date
保存为字符串
from datetime import datetime
try:
valid_datetime = datetime.strptime(request.POST['date'], '%d-%m-%Y')
except ValueError:
# handle this
然后您可以将valid_datetime保存为unit.date
strptime的第二个参数使用以下值格式化,它应该与您的datepicker格式匹配 http://docs.python.org/library/datetime.html#strftime-strptime-behavior