Django DateTimeField保存

时间:2012-01-23 19:55:09

标签: django datetime django-models

我有一个模特

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不保存?

由于

1 个答案:

答案 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