我在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>)
答案 0 :(得分:0)
您是否尝试使用DateField而不是DateTimeField,因为您没有使用时间?