---
title: "Vues génériques basées sur les dates"
version: 4.1
locale: fr
source: https://docs.djangoproject.com/fr/4.1/ref/class-based-views/generic-date-based/
canonical: https://djangodocs.dev/fr/4.1/ref/class-based-views/generic-date-based/
---
# Vues génériques basées sur les dates

Les vues génériques basées sur les dates, définies dans [`django.views.generic.dates`](#module-django.views.generic.dates), sont des vues destinées à afficher des pages énumérant en détails des données en fonction de leur date.

> **Note**
>
> Quelques exemples de cette page se basent sur le modèle `Article` défini comme suit dans `myapp/models.py`:
>
> ```
> from django.db import models
> from django.urls import reverse
>
> class Article(models.Model):
>     title = models.CharField(max_length=200)
>     pub_date = models.DateField()
>
>     def get_absolute_url(self):
>         return reverse('article-detail', kwargs={'pk': self.pk})
> ```

## `ArchiveIndexView`

#### `class ArchiveIndexView`

Une page de sommaire de premier niveau affichant les « derniers » objets par date. Les objets ayant une date dans le *futur* ne sont pas inclus, sauf si `allow_future` est défini à `True`.

**Ancêtres (MRO)**

- [`django.views.generic.list.MultipleObjectTemplateResponseMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin)
- [`django.views.generic.base.TemplateResponseMixin`](/fr/4.1/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)
- [`django.views.generic.dates.BaseArchiveIndexView`](#django.views.generic.dates.BaseArchiveIndexView)
- [`django.views.generic.dates.BaseDateListView`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)
- [`django.views.generic.list.MultipleObjectMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin)
- [`django.views.generic.dates.DateMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin)
- [`django.views.generic.base.View`](/fr/4.1/ref/class-based-views/base/#django.views.generic.base.View)

**Contexte**

En plus du contexte fourni par [`django.views.generic.list.MultipleObjectMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin) (via [`django.views.generic.dates.BaseDateListView`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)), le contexte de gabarit sera :

- `date_list`: un objet [`QuerySet`](/fr/4.1/ref/models/querysets/#django.db.models.query.QuerySet.dates) contenant toutes les années possédant des objets disponibles en fonction de `queryset`, représentés sous forme d’objets [`datetime.datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime) dans l’ordre chronologique inverse.

**Notes**

- La valeur par défaut de `context_object_name` est `latest`.
- La valeur par défaut de `template_name_suffix` est `_archive`.
- Le comportement par défaut est de fournir `date_list` par année, mais il est possible aussi d’utiliser des mois ou des jours en modifiant l’attribut `date_list_period`. Cela s’applique également à toutes les sous-classes de cette vue.

**Exemple myapp/urls.py** :

```
from django.urls import path
from django.views.generic.dates import ArchiveIndexView

from myapp.models import Article

urlpatterns = [
    path('archive/',
         ArchiveIndexView.as_view(model=Article, date_field="pub_date"),
         name="article_archive"),
]
```

**Exemple de myapp/article\_archive.html**:

```html+django
<ul>
    {% for article in latest %}
        <li>{{ article.pub_date }}: {{ article.title }}</li>
    {% endfor %}
</ul>
```

Ceci affiche tous les articles.

## `YearArchiveView`

#### `class YearArchiveView`

Une page d’archives annuelles affichant tous les mois disponibles d’une année donnée. Les objets ayant une date dans le *futur* ne sont pas inclus, sauf si `allow_future` est défini à `True`.

**Ancêtres (MRO)**

- [`django.views.generic.list.MultipleObjectTemplateResponseMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin)
- [`django.views.generic.base.TemplateResponseMixin`](/fr/4.1/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)
- [`django.views.generic.dates.BaseYearArchiveView`](#django.views.generic.dates.BaseYearArchiveView)
- [`django.views.generic.dates.YearMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin)
- [`django.views.generic.dates.BaseDateListView`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)
- [`django.views.generic.list.MultipleObjectMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin)
- [`django.views.generic.dates.DateMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin)
- [`django.views.generic.base.View`](/fr/4.1/ref/class-based-views/base/#django.views.generic.base.View)

#### `make_object_list`

Un booléen indiquant s’il faut récupérer la liste complète des objets de l’année courante et les passer au gabarit. Si la valeur est à `True`, la liste sera disponible dans le contexte. Sinon, si la valeur est à `False`, le jeu de requête `None` sera utilisé en tant que liste d’objets. Par défaut, cette valeur vaut `False`.

#### `get_make_object_list()`

Détermine si une liste d’objets est renvoyée comme une portion du contexte. Renvoie [`make_object_list`](#django.views.generic.dates.YearArchiveView.make_object_list) par défaut.

**Contexte**

En plus du contexte fourni par [`django.views.generic.list.MultipleObjectMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin) (via [`django.views.generic.dates.BaseDateListView`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)), le contexte de gabarit sera :

- `date_list`: un objet [`QuerySet`](/fr/4.1/ref/models/querysets/#django.db.models.query.QuerySet.dates) contenant tous les mois possédant des objets disponibles en fonction de `queryset`, représentés sous forme d’objets [`datetime.datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime) dans l’ordre chronologique.
- `year`: un objet [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) représentant l’année indiquée.
- `next_year`: un objet [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) représentant le premier jour de l’année suivante, en fonction de [`allow_empty`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) et [`allow_future`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).
- `previous_year`: un objet [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) représentant le premier jour de l’année précédente, en fonction de [`allow_empty`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) et [`allow_future`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).

**Notes**

- La valeur par défaut de `template_name_suffix` est `_archive_year`.

**Exemple myapp/views.py** :

```
from django.views.generic.dates import YearArchiveView

from myapp.models import Article

class ArticleYearArchiveView(YearArchiveView):
    queryset = Article.objects.all()
    date_field = "pub_date"
    make_object_list = True
    allow_future = True
```

**Exemple myapp/urls.py** :

```
from django.urls import path

from myapp.views import ArticleYearArchiveView

urlpatterns = [
    path('<int:year>/',
         ArticleYearArchiveView.as_view(),
         name="article_year_archive"),
]
```

**Exemple myapp/article\_archive\_year.html** :

```html+django
<ul>
    {% for date in date_list %}
        <li>{{ date|date }}</li>
    {% endfor %}
</ul>

<div>
    <h1>All Articles for {{ year|date:"Y" }}</h1>
    {% for obj in object_list %}
        <p>
            {{ obj.title }} - {{ obj.pub_date|date:"F j, Y" }}
        </p>
    {% endfor %}
</div>
```

## `MonthArchiveView`

#### `class MonthArchiveView`

Une page d’archives mensuelles affichant tous les objets disponibles d’un mois donné. Les objets ayant une date dans le *futur* ne sont pas inclus, sauf si `allow_future` est défini à `True`.

**Ancêtres (MRO)**

- [`django.views.generic.list.MultipleObjectTemplateResponseMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin)
- [`django.views.generic.base.TemplateResponseMixin`](/fr/4.1/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)
- [`django.views.generic.dates.BaseMonthArchiveView`](#django.views.generic.dates.BaseMonthArchiveView)
- [`django.views.generic.dates.YearMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin)
- [`django.views.generic.dates.MonthMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.MonthMixin)
- [`django.views.generic.dates.BaseDateListView`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)
- [`django.views.generic.list.MultipleObjectMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin)
- [`django.views.generic.dates.DateMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin)
- [`django.views.generic.base.View`](/fr/4.1/ref/class-based-views/base/#django.views.generic.base.View)

**Contexte**

En plus du contexte fourni par la classe [`MultipleObjectMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin) (via [`BaseDateListView`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)), le contexte du gabarit sera :

- `date_list`: un objet [`QuerySet`](/fr/4.1/ref/models/querysets/#django.db.models.query.QuerySet.dates) contenant tous les jours possédant des objets disponibles dans le mois indiqué, en fonction de `queryset`, représentés sous forme d’objets [`datetime.datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime) dans l’ordre chronologique.
- `month`: un objet [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) représentant le mois donné.
- `next_month`: un objet [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) représentant le premier jour du mois suivant, en fonction de [`allow_empty`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) et [`allow_future`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).
- `previous_month`: un objet [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) représentant le premier jour du mois précédent, en fonction de [`allow_empty`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) et [`allow_future`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).

**Notes**

- La valeur par défaut de `template_name_suffix` est `_archive_month`.

**Exemple myapp/views.py** :

```
from django.views.generic.dates import MonthArchiveView

from myapp.models import Article

class ArticleMonthArchiveView(MonthArchiveView):
    queryset = Article.objects.all()
    date_field = "pub_date"
    allow_future = True
```

**Exemple myapp/urls.py** :

```
from django.urls import path

from myapp.views import ArticleMonthArchiveView

urlpatterns = [
    # Example: /2012/08/
    path('<int:year>/<int:month>/',
         ArticleMonthArchiveView.as_view(month_format='%m'),
         name="archive_month_numeric"),
    # Example: /2012/aug/
    path('<int:year>/<str:month>/',
         ArticleMonthArchiveView.as_view(),
         name="archive_month"),
]
```

**Exemple myapp/article\_archive\_month.html** :

```html+django
<ul>
    {% for article in object_list %}
        <li>{{ article.pub_date|date:"F j, Y" }}: {{ article.title }}</li>
    {% endfor %}
</ul>

<p>
    {% if previous_month %}
        Previous Month: {{ previous_month|date:"F Y" }}
    {% endif %}
    {% if next_month %}
        Next Month: {{ next_month|date:"F Y" }}
    {% endif %}
</p>
```

## `WeekArchiveView`

#### `class WeekArchiveView`

Une page d’archives hebdomadaires affichant tous les objets disponibles d’une semaine donnée. Les objets ayant une date dans le *futur* ne sont pas inclus, sauf si `allow_future` est défini à `True`.

**Ancêtres (MRO)**

- [`django.views.generic.list.MultipleObjectTemplateResponseMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin)
- [`django.views.generic.base.TemplateResponseMixin`](/fr/4.1/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)
- [`django.views.generic.dates.BaseWeekArchiveView`](#django.views.generic.dates.BaseWeekArchiveView)
- [`django.views.generic.dates.YearMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin)
- [`django.views.generic.dates.WeekMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.WeekMixin)
- [`django.views.generic.dates.BaseDateListView`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)
- [`django.views.generic.list.MultipleObjectMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin)
- [`django.views.generic.dates.DateMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin)
- [`django.views.generic.base.View`](/fr/4.1/ref/class-based-views/base/#django.views.generic.base.View)

**Contexte**

En plus du contexte fourni par la classe [`MultipleObjectMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin) (via [`BaseDateListView`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)), le contexte du gabarit sera :

- `week`: un objet [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) représentant le premier jour de la semaine indiquée.
- `next_week`: un objet [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) représentant le premier jour de la semaine suivante, en fonction de [`allow_empty`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) et [`allow_future`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).
- `previous_week`: un objet [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) représentant le premier jour de la semaine précédente, en fonction de [`allow_empty`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) et [`allow_future`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).

**Notes**

- La valeur par défaut de `template_name_suffix` est `_archive_week`.
- L’attribut `week_format` est une chaîne de format [`strptime()`](https://docs.python.org/3/library/time.html#time.strptime) utilisée pour récupérer le numéro de semaine. Les valeurs suivantes sont prises en charge :

  - `'%U'` : basé sur le système de semaines des États-Unis où la semaine commence un dimanche. Il s’agit de la valeur par défaut.
  - `'%W'` : semblable à `'%U'`, excepté la semaine qui commence par le lundi. Ce n’est pas la même chose que le numéro de semaine ISO 8601.
  - `'%V'`: le numéro de semaine ISO 8601 où la semaine commence un lundi.

**Exemple myapp/views.py** :

```
from django.views.generic.dates import WeekArchiveView

from myapp.models import Article

class ArticleWeekArchiveView(WeekArchiveView):
    queryset = Article.objects.all()
    date_field = "pub_date"
    week_format = "%W"
    allow_future = True
```

**Exemple myapp/urls.py** :

```
from django.urls import path

from myapp.views import ArticleWeekArchiveView

urlpatterns = [
    # Example: /2012/week/23/
    path('<int:year>/week/<int:week>/',
         ArticleWeekArchiveView.as_view(),
         name="archive_week"),
]
```

**Exemple myapp/article\_archive\_week.html** :

```html+django
<h1>Week {{ week|date:'W' }}</h1>

<ul>
    {% for article in object_list %}
        <li>{{ article.pub_date|date:"F j, Y" }}: {{ article.title }}</li>
    {% endfor %}
</ul>

<p>
    {% if previous_week %}
        Previous Week: {{ previous_week|date:"W" }} of year {{ previous_week|date:"Y" }}
    {% endif %}
    {% if previous_week and next_week %}--{% endif %}
    {% if next_week %}
        Next week: {{ next_week|date:"W" }} of year {{ next_week|date:"Y" }}
    {% endif %}
</p>
```

Dans cet exemple, le numéro de semaine est affiché. N’oubliez pas que les numéros de semaine produits par le filtre de gabarit [`date`](/fr/4.1/ref/templates/builtins/#std-templatefilter-date) avec le caractère de mise en forme `'W'` ne sont pas toujours identiques aux numéros de semaine produits par la chaîne de mise en forme `'%W'` de [`strftime()`](https://docs.python.org/3/library/time.html#time.strftime) et [`strptime()`](https://docs.python.org/3/library/time.html#time.strptime). Par exemple, pour l’année 2015, les numéros de semaine produits par [`date`](/fr/4.1/ref/templates/builtins/#std-templatefilter-date) sont plus élevés de un par rapport à ceux de [`strftime()`](https://docs.python.org/3/library/time.html#time.strftime). Il n’existe pas d’équivalent à la chaîne de format `'%U'` de [`strftime()`](https://docs.python.org/3/library/time.html#time.strftime) pour [`date`](/fr/4.1/ref/templates/builtins/#std-templatefilter-date). Il faudrait donc éviter d’utiliser [`date`](/fr/4.1/ref/templates/builtins/#std-templatefilter-date) pour générer des URL pour la vue `WeekArchiveView`.

## `DayArchiveView`

#### `class DayArchiveView`

Une page d’archives journalières affichant tous les objets disponibles d’un jour donné. Les jours ayant une date dans le futur génèrent une erreur 404, sans considérer si des objets existent pour les jours futurs, sauf si `allow_future` est défini à `True`.

**Ancêtres (MRO)**

- [`django.views.generic.list.MultipleObjectTemplateResponseMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin)
- [`django.views.generic.base.TemplateResponseMixin`](/fr/4.1/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)
- [`django.views.generic.dates.BaseDayArchiveView`](#django.views.generic.dates.BaseDayArchiveView)
- [`django.views.generic.dates.YearMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin)
- [`django.views.generic.dates.MonthMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.MonthMixin)
- [`django.views.generic.dates.DayMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DayMixin)
- [`django.views.generic.dates.BaseDateListView`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)
- [`django.views.generic.list.MultipleObjectMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin)
- [`django.views.generic.dates.DateMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin)
- [`django.views.generic.base.View`](/fr/4.1/ref/class-based-views/base/#django.views.generic.base.View)

**Contexte**

En plus du contexte fourni par la classe [`MultipleObjectMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin) (via [`BaseDateListView`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)), le contexte du gabarit sera :

- `day`: un objet [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) représentant le jour indiqué.
- `next_day`: un objet [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) représentant le jour suivant, en fonction de [`allow_empty`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) et [`allow_future`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).
- `previous_day`: un objet [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) représentant le jour précédent, en fonction de [`allow_empty`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) et [`allow_future`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).
- `next_month`: un objet [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) représentant le premier jour du mois suivant, en fonction de [`allow_empty`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) et [`allow_future`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).
- `previous_month`: un objet [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) représentant le premier jour du mois précédent, en fonction de [`allow_empty`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) et [`allow_future`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).

**Notes**

- La valeur par défaut de `template_name_suffix` est `_archive_day`.

**Exemple myapp/views.py** :

```
from django.views.generic.dates import DayArchiveView

from myapp.models import Article

class ArticleDayArchiveView(DayArchiveView):
    queryset = Article.objects.all()
    date_field = "pub_date"
    allow_future = True
```

**Exemple myapp/urls.py** :

```
from django.urls import path

from myapp.views import ArticleDayArchiveView

urlpatterns = [
    # Example: /2012/nov/10/
    path('<int:year>/<str:month>/<int:day>/',
         ArticleDayArchiveView.as_view(),
         name="archive_day"),
]
```

**Exemple myapp/article\_archive\_day.html** :

```html+django
<h1>{{ day }}</h1>

<ul>
    {% for article in object_list %}
        <li>{{ article.pub_date|date:"F j, Y" }}: {{ article.title }}</li>
    {% endfor %}
</ul>

<p>
    {% if previous_day %}
        Previous Day: {{ previous_day }}
    {% endif %}
    {% if previous_day and next_day %}--{% endif %}
    {% if next_day %}
        Next Day: {{ next_day }}
    {% endif %}
</p>
```

## `TodayArchiveView`

#### `class TodayArchiveView`

Une page d’archives journalières affichant tous les objets disponibles pour *aujourd’hui*. C’est exactement la même vue que [`django.views.generic.dates.DayArchiveView`](#django.views.generic.dates.DayArchiveView), excepté que c’est la date du jour qui est prise en compte à la place des paramètres `year`/`month`/`day`.

**Ancêtres (MRO)**

- [`django.views.generic.list.MultipleObjectTemplateResponseMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin)
- [`django.views.generic.base.TemplateResponseMixin`](/fr/4.1/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)
- [`django.views.generic.dates.BaseTodayArchiveView`](#django.views.generic.dates.BaseTodayArchiveView)
- [`django.views.generic.dates.BaseDayArchiveView`](#django.views.generic.dates.BaseDayArchiveView)
- [`django.views.generic.dates.YearMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin)
- [`django.views.generic.dates.MonthMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.MonthMixin)
- [`django.views.generic.dates.DayMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DayMixin)
- [`django.views.generic.dates.BaseDateListView`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)
- [`django.views.generic.list.MultipleObjectMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin)
- [`django.views.generic.dates.DateMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin)
- [`django.views.generic.base.View`](/fr/4.1/ref/class-based-views/base/#django.views.generic.base.View)

**Notes**

- La valeur par défaut de `template_name_suffix` est `_archive_today`.

**Exemple myapp/views.py** :

```
from django.views.generic.dates import TodayArchiveView

from myapp.models import Article

class ArticleTodayArchiveView(TodayArchiveView):
    queryset = Article.objects.all()
    date_field = "pub_date"
    allow_future = True
```

**Exemple myapp/urls.py** :

```
from django.urls import path

from myapp.views import ArticleTodayArchiveView

urlpatterns = [
    path('today/',
         ArticleTodayArchiveView.as_view(),
         name="archive_today"),
]
```

> **Où se trouve le gabarit d’exemple pour TodayArchiveView?**
>
> Cette vue utilise par défaut le même gabarit que [`DayArchiveView`](/fr/4.1/ref/class-based-views/flattened-index/#DayArchiveView), qui figure dans l’exemple précédent. Si vous avez besoin d’un gabarit différent, définissez l’attribut `template_name` avec le nom du nouveau gabarit.

## `DateDetailView`

#### `class DateDetailView`

Une page représentant un objet individuel. Si l’objet contient une valeur de date dans le futur, la vue génère par défaut une erreur 404, sauf si `allow_future` est défini à `True`.

**Ancêtres (MRO)**

- [`django.views.generic.detail.SingleObjectTemplateResponseMixin`](/fr/4.1/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectTemplateResponseMixin)
- [`django.views.generic.base.TemplateResponseMixin`](/fr/4.1/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)
- [`django.views.generic.dates.BaseDateDetailView`](#django.views.generic.dates.BaseDateDetailView)
- [`django.views.generic.dates.YearMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin)
- [`django.views.generic.dates.MonthMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.MonthMixin)
- [`django.views.generic.dates.DayMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DayMixin)
- [`django.views.generic.dates.DateMixin`](/fr/4.1/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin)
- [`django.views.generic.detail.BaseDetailView`](/fr/4.1/ref/class-based-views/generic-display/#django.views.generic.detail.BaseDetailView)
- [`django.views.generic.detail.SingleObjectMixin`](/fr/4.1/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin)
- [`django.views.generic.base.View`](/fr/4.1/ref/class-based-views/base/#django.views.generic.base.View)

**Contexte**

- Inclut l’objet unique associé au `model` défini dans la vue `DateDetailView`.

**Notes**

- La valeur par défaut de `template_name_suffix` est `_detail`.

**Exemple myapp/urls.py** :

```
from django.urls import path
from django.views.generic.dates import DateDetailView

urlpatterns = [
    path('<int:year>/<str:month>/<int:day>/<int:pk>/',
         DateDetailView.as_view(model=Article, date_field="pub_date"),
         name="archive_date_detail"),
]
```

**Exemple myapp/article\_detail.html** :

```html+django
<h1>{{ object.title }}</h1>
```

> **Note**
>
> Toutes les vues génériques mentionnées ci-dessus ont des vues `Base` correspondantes dont la seule différence est de ne pas inclure [`MultipleObjectTemplateResponseMixin`](/fr/4.1/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin) (pour les vues d’archives) ni [`SingleObjectTemplateResponseMixin`](/fr/4.1/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectTemplateResponseMixin) (pour [`DateDetailView`](/fr/4.1/ref/class-based-views/flattened-index/#DateDetailView)) :
>
> #### `class BaseArchiveIndexView`
>
>
>
>
> #### `class BaseYearArchiveView`
>
>
>
>
> #### `class BaseMonthArchiveView`
>
>
>
>
> #### `class BaseWeekArchiveView`
>
>
>
>
> #### `class BaseDayArchiveView`
>
>
>
>
> #### `class BaseTodayArchiveView`
>
>
>
>
> #### `class BaseDateDetailView`
