重启后的Django / Apache旧内容

时间:2016-03-21 18:53:51

标签: python django apache django-models django-migrations

我在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))

1 个答案:

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