Django DateTimeField保存

Пав*_*вин 1 django datetime django-models

我有一个模特

class Unit(models.Model):
    date = models.DateTimeField()
    name = models.CharField(max_length = 128)
Run Code Online (Sandbox Code Playgroud)

然后我有一个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);
});
Run Code Online (Sandbox Code Playgroud)

然后在一个视图中我试图保存单位像

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')
Run Code Online (Sandbox Code Playgroud)

Unit.name更改,但不是unit.date.我用django 1.3.我没有csrf保护.我从服务器收到'ok'.为什么unit.date不能保存?

谢谢

dm0*_*514 7

由于django datetime字段是datetime.datetimepython实例的表示,我喜欢在插入数据库之前确保我有一个有效的实例.

您可以使用datetime模块来实现此目的,而不是保存unit.date为字符串

from datetime import datetime

try:
  valid_datetime = datetime.strptime(request.POST['date'], '%d-%m-%Y')
except ValueError:
  # handle this
Run Code Online (Sandbox Code Playgroud)

然后你可以将valid_datetime保存为unit.date

strptime的第二个参数使用以下值格式化,它应该与您的datepicker格式匹配 http://docs.python.org/library/datetime.html#strftime-strptime-behavior