Django更新表单生成错误日期

时间:2015-02-03 12:20:24

标签: django timezone

我在django中创建了一个日历应用程序,我可以在其中添加/更新/删除事件(包括startdate,enddate和title)。

我尝试更新活动时遇到问题。例如,我想更新2015-02-04至2015-02-03的startdate,startdate的值始终保存为-1天(2015-02-02)。

我的模特:

class Event(models.Model):
    title = models.CharField(max_length=255)
    start = models.DateTimeField()
    end = models.DateTimeField()

我的表格:

class EventForm(ModelForm):
    class Meta:
        model = Event

我的观点:

form = EventForm(
    request.POST,
    instance=Event.objects.get(
        pk=request.POST['id']
    )
 )
form.save()
小解释: 当我想更新事件时,我在请求中发送ID,这样我就可以将事件的旧实例注入到表单中。

我知道时区一定存在问题。在我的settings.py中,我有USE_TZ = True和TIME_ZONE =' EUrope / Prague'。

request.POST [' start']包含类似' 2015-02-03'

的字符串

当我检查我的数据库中保存的内容(Events.objects.all())时,我可以看到日期是用UTC保存的。

events = Event.objects.all()
e = events[0]
e.start
datetime.datetime(2015, 2, 2, 11, 0, tzinfo=<UTC>)

1 个答案:

答案 0 :(得分:0)

您是否尝试使用DateField而不是DateTimeField,因为您没有使用时间?

相关问题