Класс MonthMixin (Django 3.2)

from django.views.generic.dates import MonthMixin

Mixin for views manipulating month-based data.

Attributes

  Defined in
month = None MonthMixin
month_format = '%b' MonthMixin

Methods

Return the month for which this view should display data.

def get_month(self):
    """Return the month for which this view should display data."""
    month = self.month
    if month is None:
        try:
            month = self.kwargs['month']
        except KeyError:
            try:
                month = self.request.GET['month']
            except KeyError:
                raise Http404(_("No month specified"))
    return month

Get a month format string in strptime syntax to be used to parse the month from url variables.

def get_month_format(self):
    """
    Get a month format string in strptime syntax to be used to parse the
    month from url variables.
    """
    return self.month_format

Get the next valid month.

def get_next_month(self, date):
    """Get the next valid month."""
    return _get_next_prev(self, date, is_previous=False, period='month')

Get the previous valid month.

def get_previous_month(self, date):
    """Get the previous valid month."""
    return _get_next_prev(self, date, is_previous=True, period='month')

Return the start date of the previous interval.

def _get_current_month(self, date):
    """Return the start date of the previous interval."""
    return date.replace(day=1)

Return the start date of the next interval. The interval is defined by start date <= item date < next start date.

def _get_next_month(self, date):
    """
    Return the start date of the next interval.
    The interval is defined by start date <= item date < next start date.
    """
    if date.month == 12:
        try:
            return date.replace(year=date.year + 1, month=1, day=1)
        except ValueError:
            raise Http404(_("Date out of range"))
    else:
        return date.replace(month=date.month + 1, day=1)