0
我的问题是,我想显示例如2016-17,2017-18,2018-19等的所有事件,例如从2016年7月1日至2017年3月31日。 我使用Django 1.6。在特定时间范围内显示活动
当我去网址:http://127.0.0.1:8000/en/production/2016-17我得到了一个错误: Event matching query does not exist.
事件模型:
class Event(models.Model):
name = models.CharField('Name', max_length=255)
start = models.DateField('Start')
end = models.DateField('End')
def __unicode__(self):
return self.name
这里是我的网址:
url(r'^(?P<branch_slug>/production/(?P<year1>[0-9]{4})-(?P<year2>[0-9]{2})$', EventView.as_view()),
这是我的观点:
class EventListView(ListView):
def get_queryset(self):
filter_ = {'online': True}
season_start = Event.objects.get(start=datetime.date(int(self.kwargs['year1']), 7, 1))
season_end = Event.objects.get(end=datetime.date(int(self.kwargs['year2']), 8, 31))
filter_['start__gte'] = season_start
filter_['end__lte'] = season_end
return self.model.objects.filter(**filter_)
请寻求帮助或提示。
season_start(和season_end)是Event的一个实例。但是您将它用作日期。试着'过滤_ ['start__gte'] = season_start.start'(和season_end相同)以返回一个Date对象。 – Rafael
@Rafael感谢提示,但我在这个地方得到一个错误:'season_start = Event.objects.get(start = datetime.date(int(self.kwargs ['year1']),7,1))' – Mark
对不起。所以,你的数据库没有指定日期的事件。 (同样的错误[这里](http://stackoverflow.com/questions/5508888/matching-query-does-not-exist-error-in-django)) – Rafael