---
title: "“Views” de datas genéricas"
version: 6.0
locale: pt-br
source: https://docs.djangoproject.com/pt-br/6.0/ref/class-based-views/generic-date-based/
canonical: https://djangodocs.dev/pt-br/6.0/ref/class-based-views/generic-date-based/
---
# “Views” de datas genéricas

“Views” genéricas baseadas em datas, fornecidas no [`django.views.generic.dates`](#module-django.views.generic.dates), são “views” para mostrar páginas de resumo de dados baseados em datas.

> **Note**
>
> Alguns dos exmplos nesta página assumem que um modelo de `Article` foi definido com a seguir em  `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`

Uma página de índice de n;ível superior que mostra os últimos (“latest”) objetos, por data. Objetos com uma data no *futuro* não estão incluídos a menos que seja definido `allow_future` como `True`.

**Ancestrais (MRO)**

- [`django.views.generic.list.MultipleObjectTemplateResponseMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin)
- [`django.views.generic.base.TemplateResponseMixin`](/pt-br/6.0/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`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)
- [`django.views.generic.list.MultipleObjectMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin)
- [`django.views.generic.dates.DateMixin`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin)
- [`django.views.generic.base.View`](/pt-br/6.0/ref/class-based-views/base/#django.views.generic.base.View)

**Context**

Além do contexto fornecido pelo [`django.views.generic.list.MultipleObjectMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin) (através da [`django.views.generic.dates.BaseDateListView`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)), o contexto do template será:

- `date_list`: Um objeto [`QuerySet`](/pt-br/6.0/ref/models/querysets/#django.db.models.query.QuerySet.dates) contendo todos os anos que tenham objetos disponíveis de acordo com o `queryset`, representado como objetos [`datetime.datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime), em ordem ascendente.

**Notas**

- Usa um `context_object_name` padrão como `latest`.
- Usa um `template_name_suffix` padrão como `_archive`.
- Por padrão fornece `date_list` por ano, mas isso pode ser alterado para mês ou dia usando o atributo `date_list_period`. Isso se aplica a todas as subclasses de “views”.

**Exemplo 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",
    ),
]
```

**Exemplo myapp/article\_archive.html**:

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

Isso irá retornar todos os artigos.

## `YearArchiveView`

#### `class YearArchiveView`

Uma página de arquivos anuais mostrando todos os meses disponíveis em um dado ano. Objetos com uma data no *futuro* não são mostrados a menos que defina `allow_future` como `True`.

**Ancestrais (MRO)**

- [`django.views.generic.list.MultipleObjectTemplateResponseMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin)
- [`django.views.generic.base.TemplateResponseMixin`](/pt-br/6.0/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`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin)
- [`django.views.generic.dates.BaseDateListView`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)
- [`django.views.generic.list.MultipleObjectMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin)
- [`django.views.generic.dates.DateMixin`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin)
- [`django.views.generic.base.View`](/pt-br/6.0/ref/class-based-views/base/#django.views.generic.base.View)

#### `make_object_list`

Um booleano que especifica se retorna ou não a lista toda de objetos para este ano e os passa para o template. Se `True`, a lista de objetos será disponibilizada no contexto. Se `False`, o “queryset” `None` será usado como a lista de objetos. Por padrão isso é `False`.

#### `get_make_object_list()`

Determina se uma lista de objetos será retonado como parte do contexto. Retorna [`make_object_list`](#django.views.generic.dates.YearArchiveView.make_object_list) por padrão.

**Context**

Além do contexto fornecido pelo [`django.views.generic.list.MultipleObjectMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin) (através da [`django.views.generic.dates.BaseDateListView`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)), o contexto do template será:

- `date_list`: Um objeto [`QuerySet`](/pt-br/6.0/ref/models/querysets/#django.db.models.query.QuerySet.dates) contendo todos os meses que tenham objetos disponíveis de acordo com o `queryset`, representado como objetos [`datetime.datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime) em order ascendente.
- `year`: Um objeto [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) representando um dado ano.
- `next_year`: Um objeto do tipo [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) representando o primeiro dia do próximo ano, de acordo com [`allow_empty`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) e [`allow_future`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).
- `previous_year`: Um objeto [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) representando o primeiro dia do ano anterior, de acordo com [`allow_empty`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) e [`allow_future`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).

**Notas**

- Usa um `template_name_suffix` padrão como `_archive_year`.

**Exemplo 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
```

**Exemplo myapp/urls.py**:

```
from django.urls import path

from myapp.views import ArticleYearArchiveView

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

**Exemplo 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`

Uma página de arquivo mensal mostrando todos os objetos em um dado mês. Objetos com uma data no *futuro* não são mostrados a menos que defina `allow_future` como `True`.

**Ancestrais (MRO)**

- [`django.views.generic.list.MultipleObjectTemplateResponseMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin)
- [`django.views.generic.base.TemplateResponseMixin`](/pt-br/6.0/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`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin)
- [`django.views.generic.dates.MonthMixin`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.MonthMixin)
- [`django.views.generic.dates.BaseDateListView`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)
- [`django.views.generic.list.MultipleObjectMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin)
- [`django.views.generic.dates.DateMixin`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin)
- [`django.views.generic.base.View`](/pt-br/6.0/ref/class-based-views/base/#django.views.generic.base.View)

**Context**

Além do contexto fornecido pela [`MultipleObjectMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin) (via [`BaseDateListView`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)), o contexto do template será:

- `date_list`: Um objeto do tipo [`QuerySet`](/pt-br/6.0/ref/models/querysets/#django.db.models.query.QuerySet.dates) contendo todo os dias que tenham objetos disponíveis no dado mês, de cordo com o `queryset`, representando como objetos do tipo [`datetime.datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime) , em orderm ascendente.
- `month`: Um objeto do tipo [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) representando o dado mês.
- `next_month`: Um objeto [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) que representa o primeiro dia do próximo mês, de acordo com [`allow_empty`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) e [`allow_future`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).
- `previous_month`: Um objeto [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) que representa o primeiro dia do mês anterior, de acordo com  [`allow_empty`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) e [`allow_future`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).

**Notas**

- Usa um `template_name_suffix` padrão como `_archive_month`.

**Exemplo 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
```

**Exemplo 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",
    ),
]
```

**Exemplo 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`

Uma página de arquivo semanal mostrando todos os objetos em determinada semana. Objetos com uma data no *futuro* não são exibidos a menos que você defina `allow_future` como `True`.

**Ancestrais (MRO)**

- [`django.views.generic.list.MultipleObjectTemplateResponseMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin)
- [`django.views.generic.base.TemplateResponseMixin`](/pt-br/6.0/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`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin)
- [`django.views.generic.dates.WeekMixin`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.WeekMixin)
- [`django.views.generic.dates.BaseDateListView`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)
- [`django.views.generic.list.MultipleObjectMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin)
- [`django.views.generic.dates.DateMixin`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin)
- [`django.views.generic.base.View`](/pt-br/6.0/ref/class-based-views/base/#django.views.generic.base.View)

**Context**

Além do contexto fornecido pela [`MultipleObjectMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin) (via [`BaseDateListView`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)), o contexto do template será:

- `week`: Um objeto [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) que representa o primeiro dia de uma dada semana.
- `next_week`: Um objeto do tipo [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) representando o primeiro dia da próxima semana, de acordo com [`allow_empty`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) e [`allow_future`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).
- `previous_week`: Um objeto [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) representando o primeiro dia da semana anterior, de acordo com [`allow_empty`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) e [`allow_future`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).

**Notas**

- Usa um `template_name_suffix` padrão como `_archive_week`.
- O atributo `week_format` é uma string de formtação do tipo [`strptime()`](https://docs.python.org/3/library/time.html#time.strptime) usada para formatar o número da semana. Os seguintes valores são permitidos:

  - `'%U'`: Baseado no sistema de semanas do Estados Unidos onde a semana começa no Domingo. Este é o valor padrão.
  - `'%W'`: Similar to `'%U'`, except it assumes that the week
    begins on Monday. This is not the same as the ISO 8601 week number.
  - `'%V'`: ISO 8601 week number where the week begins on Monday.

**Exemplo 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
```

**Exemplo 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",
    ),
]
```

**Exemplo 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>
```

Nesse exemplo, você está exibindo o número da semana. Note que os números da semana computados pelo filtro de template [`date`](/pt-br/6.0/ref/templates/builtins/#std-templatefilter-date) com o caractere `'W'` não é extamente o mesmo que os computados pelo [`strftime()`](https://docs.python.org/3/library/time.html#time.strftime) e [`strptime()`](https://docs.python.org/3/library/time.html#time.strptime) com a string de formatação `'%W'`. No ano de 2015, por exemplo, a exibição dos números da semana pelo [`date`](/pt-br/6.0/ref/templates/builtins/#std-templatefilter-date) são maiores que outras se comparadas com a saída pelo [`strftime()`](https://docs.python.org/3/library/time.html#time.strftime). Não há um equivalente para a string de formatação `'%U'` [`strftime()`](https://docs.python.org/3/library/time.html#time.strftime). Por tanto, você deve evitar o uso de [`date`](/pt-br/6.0/ref/templates/builtins/#std-templatefilter-date) para gerar URLs para `WeekArchiveView`.

## `DayArchiveView`

#### `class DayArchiveView`

Uma página de arquivo diária mostrando todos os objetos em determinado dia. Dias no futuro retornam erro 404, independente da existência de objetos com dias futuros, a menos que você defina `allow_future` como `True`.

**Ancestrais (MRO)**

- [`django.views.generic.list.MultipleObjectTemplateResponseMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin)
- [`django.views.generic.base.TemplateResponseMixin`](/pt-br/6.0/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`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin)
- [`django.views.generic.dates.MonthMixin`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.MonthMixin)
- [`django.views.generic.dates.DayMixin`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DayMixin)
- [`django.views.generic.dates.BaseDateListView`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)
- [`django.views.generic.list.MultipleObjectMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin)
- [`django.views.generic.dates.DateMixin`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin)
- [`django.views.generic.base.View`](/pt-br/6.0/ref/class-based-views/base/#django.views.generic.base.View)

**Context**

Além do contexto fornecido pela [`MultipleObjectMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin) (via [`BaseDateListView`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)), o contexto do template será:

- `day`: Um objeto [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) representando um dado dia.
- next\_day\`: Um objeto do tipo [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) representando o próximo dia de acordo com [`allow_empty`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) e [`allow_future`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).
- `previous_day`: Um objeto do tipo [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) representando o dia anterior de acordo com [`allow_empty`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) e [`allow_future`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).
- `next_month`: Um objeto [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) que representa o primeiro dia do próximo mês, de acordo com [`allow_empty`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) e [`allow_future`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).
- `previous_month`: Um objeto [`date`](https://docs.python.org/3/library/datetime.html#datetime.date) que representa o primeiro dia do mês anterior, de acordo com  [`allow_empty`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty) e [`allow_future`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future).

**Notas**

- Usa um `template_name_suffix` padrão como `_archive_day`.

**Exemplo 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
```

**Exemplo 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",
    ),
]
```

**Exemplo 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`

Uma página de arquivo diária mostrando todos os objetos de “hoje”. Isso é exatamente o mesmo que [`django.views.generic.dates.DayArchiveView`](#django.views.generic.dates.DayArchiveView), exceto que a data de “hoje” é usada ao invés dos argumentos `year`/`month`/`day`

**Ancestrais (MRO)**

- [`django.views.generic.list.MultipleObjectTemplateResponseMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin)
- [`django.views.generic.base.TemplateResponseMixin`](/pt-br/6.0/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`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin)
- [`django.views.generic.dates.MonthMixin`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.MonthMixin)
- [`django.views.generic.dates.DayMixin`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DayMixin)
- [`django.views.generic.dates.BaseDateListView`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView)
- [`django.views.generic.list.MultipleObjectMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin)
- [`django.views.generic.dates.DateMixin`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin)
- [`django.views.generic.base.View`](/pt-br/6.0/ref/class-based-views/base/#django.views.generic.base.View)

**Notas**

- Usa um `template_name_suffix` padrão como `_archive_today`.

**Exemplo 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
```

**Exemplo myapp/urls.py**:

```
from django.urls import path

from myapp.views import ArticleTodayArchiveView

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

> **Onde está o template de exemplo do TodayArchiveView?**
>
> Essa view usa por padrão o mesmo template do [`DayArchiveView`](/pt-br/6.0/ref/class-based-views/flattened-index/#DayArchiveView) do exemplo anterior. Se você precisa de um template diferente, defina o nome do novo template no atributo `template_name`.

## `DateDetailView`

#### `class DateDetailView`

Uma página representando um objeto individual. Se o objeto possui uma data no futuro, a view irá gerar um erro 404 por padrão, a menos que você defina `allow_future` como `True`.

**Ancestrais (MRO)**

- [`django.views.generic.detail.SingleObjectTemplateResponseMixin`](/pt-br/6.0/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectTemplateResponseMixin)
- [`django.views.generic.base.TemplateResponseMixin`](/pt-br/6.0/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`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin)
- [`django.views.generic.dates.MonthMixin`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.MonthMixin)
- [`django.views.generic.dates.DayMixin`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DayMixin)
- [`django.views.generic.dates.DateMixin`](/pt-br/6.0/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin)
- [`django.views.generic.detail.BaseDetailView`](/pt-br/6.0/ref/class-based-views/generic-display/#django.views.generic.detail.BaseDetailView)
- [`django.views.generic.detail.SingleObjectMixin`](/pt-br/6.0/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin)
- [`django.views.generic.base.View`](/pt-br/6.0/ref/class-based-views/base/#django.views.generic.base.View)

**Context**

- Inclui um único objeto associado ao `model` especificado em `DateDetailView`.

**Notas**

- Usa um `template_name_suffix` padrão como `_detail`.

**Exemplo 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",
    ),
]
```

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

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

> **Note**
>
> Todas as “views” genéricas listadas acima casam com as views `Base` com a diferença que elas não incluem o [`MultipleObjectTemplateResponseMixin`](/pt-br/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin) (para views de arquivo) ou [`SingleObjectTemplateResponseMixin`](/pt-br/6.0/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectTemplateResponseMixin) (para a [`DateDetailView`](/pt-br/6.0/ref/class-based-views/flattened-index/#DateDetailView)):
>
> #### `class BaseArchiveIndexView`
>
>
>
>
> #### `class BaseYearArchiveView`
>
>
>
>
> #### `class BaseMonthArchiveView`
>
>
>
>
> #### `class BaseWeekArchiveView`
>
>
>
>
> #### `class BaseDayArchiveView`
>
>
>
>
> #### `class BaseTodayArchiveView`
>
>
>
>
> #### `class BaseDateDetailView`
