def get_object(self, queryset=None): year = self.get_year() month = self.get_month() day = self.get_day() self.date = _date_from_string(year, self.get_year_format(), month, self.get_month_format(), day, self.get_day_format()) # Use a custom queryset if provided qs = queryset or self.get_queryset() if not self.get_allow_future() and self.date > now().date(): raise Http404(_(u"Future %(verbose_name_plural)s not available because %(class_name)s.allow_future is False.") % { 'verbose_name_plural': qs.model._meta.verbose_name_plural, 'class_name': self.__class__.__name__, }) # Filter down a queryset from self.queryset using the date from the # URL. This'll get passed as the queryset to DetailView.get_object, # which'll handle the 404 date_field = self.get_date_field() field = qs.model._meta.get_field(date_field) if DJANGO_VERSION[0:2] < (1, 5): lookup = _date_lookup_for_field(field, self.date) else: lookup = self._make_single_date_lookup(field) qs = qs.filter(**lookup) for diarydetail in qs: for entry in diarydetail.detail.published(): entry.visits = F('visits') + 1 entry.save() return qs.get()
def get_object(self, queryset=None): """ Get the object this request displays. """ year = self.get_year() month = self.get_month() day = self.get_day() date = _date_from_string(year, self.get_year_format(), month, self.get_month_format(), day, self.get_day_format()) if queryset is None: queryset = self.get_queryset() if not self.get_allow_future() and date > datetime.date.today(): # pragma: no cover raise Http404(_(u"Future %(verbose_name_plural)s not available because %(class_name)s.allow_future is False.") % { 'verbose_name_plural': queryset.model._meta.verbose_name_plural, 'class_name': self.__class__.__name__, }) # Filter down a queryset from self.queryset using the date from the # URL. This'll get passed as the queryset to DetailView.get_object, # which'll handle the 404 date_field = self.get_date_field() field = queryset.model._meta.get_field(date_field) lookup = _date_lookup_for_field(field, date) queryset = queryset.filter(**lookup) return super(BaseDateDetailView, self).get_object(queryset=queryset)
def get_object(self, queryset=None): year = self.get_year() month = self.get_month() day = self.get_day() self.date = _date_from_string(year, self.get_year_format(), month, self.get_month_format(), day, self.get_day_format()) # Use a custom queryset if provided qs = queryset or self.get_queryset() if not self.get_allow_future() and self.date > now().date(): raise Http404( _(u"Future %(verbose_name_plural)s not available because %(class_name)s.allow_future is False." ) % { 'verbose_name_plural': qs.model._meta.verbose_name_plural, 'class_name': self.__class__.__name__, }) # Filter down a queryset from self.queryset using the date from the # URL. This'll get passed as the queryset to DetailView.get_object, # which'll handle the 404 date_field = self.get_date_field() field = qs.model._meta.get_field(date_field) if DJANGO_VERSION[0:2] < (1, 5): lookup = _date_lookup_for_field(field, self.date) else: lookup = self._make_single_date_lookup(field) qs = qs.filter(**lookup) for diarydetail in qs: for entry in diarydetail.detail.published(): entry.visits = F('visits') + 1 entry.save() return qs.get()
def get_object(self, queryset=None): """ Get the object this request displays. """ year = self.get_year() month = self.get_month() day = self.get_day() date = _date_from_string(year, self.get_year_format(), month, self.get_month_format(), day, self.get_day_format()) if queryset is None: queryset = self.get_queryset() if not self.get_allow_future( ) and date > datetime.date.today(): # pragma: no cover raise Http404( _(u"Future %(verbose_name_plural)s not available because %(class_name)s.allow_future is False." ) % { 'verbose_name_plural': queryset.model._meta.verbose_name_plural, 'class_name': self.__class__.__name__, }) # Filter down a queryset from self.queryset using the date from the # URL. This'll get passed as the queryset to DetailView.get_object, # which'll handle the 404 date_field = self.get_date_field() field = queryset.model._meta.get_field(date_field) lookup = _date_lookup_for_field(field, date) queryset = queryset.filter(**lookup) return super(BaseDateDetailView, self).get_object(queryset=queryset)
def get_object(self, queryset=None): """ Compat for django 1.4 """ # Django >= 1.5 if hasattr(dates.DateDetailView, '_make_date_lookup_arg'): return super(dates.DateDetailView, self).get_object(queryset) def _date_lookup_for_field(field, date): """ Patch the function so it returns aware datetimes using UTC. """ if isinstance(field, models.DateTimeField): date_range = ( timezone.make_aware( datetime.datetime.combine(date, datetime.time.min), timezone.utc), timezone.make_aware( datetime.datetime.combine(date, datetime.time.max), timezone.utc) ) return {'%s__range' % field.name: date_range} else: return {field.name: date} year = self.get_year() month = self.get_month() day = self.get_day() date = dates._date_from_string( year, self.get_year_format(), month, self.get_month_format(), day, self.get_day_format()) # Use a custom queryset if provided qs = queryset or self.get_queryset() if not self.get_allow_future() and date > datetime.date.today(): raise Http404(_( "Future %(verbose_name_plural)s not available" " because %(class_name)s.allow_future is False.") % { 'verbose_name_plural': qs.model._meta.verbose_name_plural, 'class_name': self.__class__.__name__, }) # Filter down a queryset from self.queryset using the date from the # URL. This'll get passed as the queryset to DetailView.get_object, # which'll handle the 404 date_field = self.get_date_field() field = qs.model._meta.get_field(date_field) if settings.USE_TZ: lookup = _date_lookup_for_field(field, date) else: lookup = dates._date_lookup_for_field(field, date) qs = qs.filter(**lookup) return super(dates.BaseDetailView, self).get_object(queryset=qs)
def get_object(self, queryset=None): """ Compat for django 1.4 """ # Django >= 1.5 if hasattr(dates.DateDetailView, '_make_date_lookup_arg'): return super(dates.DateDetailView, self).get_object(queryset) def _date_lookup_for_field(field, date): """ Patch the function so it returns aware datetimes using UTC. """ if isinstance(field, models.DateTimeField): date_range = (timezone.make_aware( datetime.datetime.combine(date, datetime.time.min), timezone.utc), timezone.make_aware( datetime.datetime.combine( date, datetime.time.max), timezone.utc)) return {'%s__range' % field.name: date_range} else: return {field.name: date} year = self.get_year() month = self.get_month() day = self.get_day() date = dates._date_from_string(year, self.get_year_format(), month, self.get_month_format(), day, self.get_day_format()) # Use a custom queryset if provided qs = queryset or self.get_queryset() if not self.get_allow_future() and date > datetime.date.today(): raise Http404( _(u"Future %(verbose_name_plural)s not available because %(class_name)s.allow_future is False." ) % { 'verbose_name_plural': qs.model._meta.verbose_name_plural, 'class_name': self.__class__.__name__, }) # Filter down a queryset from self.queryset using the date from the # URL. This'll get passed as the queryset to DetailView.get_object, # which'll handle the 404 date_field = self.get_date_field() field = qs.model._meta.get_field(date_field) if settings.USE_TZ: lookup = _date_lookup_for_field(field, date) else: lookup = dates._date_lookup_for_field(field, date) qs = qs.filter(**lookup) return super(dates.BaseDetailView, self).get_object(queryset=qs)