Mein Problem ist, dass ich alle Ereignisse anzeigen möchte, die zum Beispiel in den Jahren 2016-17, 2017-18, 2018-19 etc, zum Beispiel von 1.07.2016 bis 31.08.2017 sind. Ich benutze Django 1.6.Zeige Ereignisse in einem bestimmten Zeitraum
Als ich URL: http://127.0.0.1:8000/en/production/2016-17 bekam ich einen Fehler: Event matching query does not exist.
Event-Modell:
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
Hier ist meine url:
url(r'^(?P<branch_slug>/production/(?P<year1>[0-9]{4})-(?P<year2>[0-9]{2})$', EventView.as_view()),
Hier ist meine Ansicht:
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_)
Bitte um Hilfe oder einen Hinweis.
season_start (und season_end) ist eine Instanz von Event. Aber Sie verwenden es als Datum. Versuchen Sie 'filter _ ['start__gte'] = season_start.start' (und das selbe am season_end) für die Rückgabe eines Date-Objekts. – Rafael
@Rafael Danke für den Hinweis, aber ich bekomme einen Fehler an dieser Stelle: 'season_start = Event.objects.get (start = datetime.date (int (self.kwarts ['year1']), 7, 1))' – Mark
Entschuldigung . Ihre Datenbank hat also kein Ereignis für das angegebene Datum. (gleicher Fehler [hier] (http://stackoverflow.com/questions/5508888/matching-query-does-not-exist-error-in-django)) – Rafael