我在Django 1.8和Apache上运行的网站有一个奇怪的问题。
我正在尝试显示下周即将举行的活动的列表。在对模型进行修改,在网站上制作和应用我的迁移,并重新启动Apache之后,一切都显示正常。我有一个python脚本查询并在网站上显示下周的活动天数。这个周末的活动计划定于周六午夜之后不久发生。事件发生前。
不幸的是,在我手动重新加载Apache服务之前,周六没有出现这些事件。此外,在星期一到来之前,该站点再次显示旧信息,直到我再次重新加载Apache服务。星期一重新加载后,一切正常,直到下周六。
我已经检查了所有的crons,并且没有任何运行可以使网站以这种方式运行。我还检查了所有文件的ctime和mtime,看起来它们没有被更改或修改过。我还检查了脚本,找不到任何可能导致此行为的内容。
是否有人知道可能导致此问题的原因或有其他方法来解决此问题?
谢谢。
以下是相关代码......
views.py
def index(request, starttime = datetime.now(), version = False):
# starttime: Datetime object for when to begin looking for events. Index pages are always a week.
starttime = datetime.now()
endtime = starttime + timedelta(7)
event_list = getEventsDB(EventList(), start = starttime, end = endtime)
event_calendar = getEventsDB(
EventSeries.objects.get(event_slug = 'competition'),
start = starttime, end = starttime + timedelta(7))
highlight_title = 'Competitions'
t = loader.get_template('event/index.html')
c = RequestContext(request, {
'page_title': 'Events',
'highlight_title': highlight_title,
'event_list': event_list,
'highlight': event_calendar,
'event_series_list': EventSeries.objects.filter(active=True),
})
return HttpResponse(t.render(c))
答案 0 :(得分:2)
你的问题在这里:
def index(request, starttime = datetime.now(), version = False):
当方法定义时会计算启动时间,这在首次导入模块时会发生 - 换句话说,当服务器重新启动时。不要把价值观放在那里;相反,保留默认值为None并检查函数本身:
def index(request, starttime=None, version = False):
if starttime is None:
starttime = datetime.now()