Generisk datumvisningLink to this heading

Datumbaserade generiska vyer, som tillhandahålls i django.views.generic.dates, är vyer för att visa drilldown-sidor för datumbaserade data.

ArchiveIndexViewLink to this heading

class ArchiveIndexViewLink to this definition

En indexsida på översta nivån som visar de ”senaste” objekten, efter datum. Objekt med ett datum i framtiden inkluderas inte om du inte ställer in allow_future till True.

Ancestors (MRO)

Kontext

Förutom det sammanhang som tillhandahålls av django.views.generic.list.MultipleObjectMixin (via django.views.generic.dates.BaseDateListView), kommer mallens sammanhang att vara:

  • date_list: Ett QuerySet-objekt som innehåller alla år som har objekt tillgängliga enligt queryset, representerade som datetime.datetime-objekt, i fallande ordning.

Noter

  • Använder ett standardnamn för context_object_namelatest.

  • Använder standardvärdet template_name_suffix för _archive.

  • Standard är att tillhandahålla date_list per år, men detta kan ändras till månad eller dag med hjälp av attributet date_list_period. Detta gäller även för alla underklassvyer.

Exempel myapp/urls.py:

Code
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",
    ),
]

Exempel myapp/article_archive.html:

Django template
<ul>
    {% for article in latest %}
        <li>{{ article.pub_date }}: {{ article.title }}</li>
    {% endfor %}
</ul>

Detta kommer att mata ut alla artiklar.

ÅrArkivViewLink to this heading

class YearArchiveViewLink to this definition

En årlig arkivsida som visar alla tillgängliga månader under ett visst år. Objekt med ett datum i framtiden visas inte om du inte ställer in allow_future till True.

Ancestors (MRO)

make_object_listLink to this definition

En boolean som anger om den fullständiga listan över objekt för det här året ska hämtas och skickas till mallen. Om True, kommer listan med objekt att göras tillgänglig för kontexten. Om False, kommer frågeuppsättningen None att användas som objektlista. Som standard är detta False.

get_make_object_list()Link to this definition

Bestämmer om en objektlista ska returneras som en del av kontexten. Returnerar make_object_list som standard.

Kontext

Förutom det sammanhang som tillhandahålls av django.views.generic.list.MultipleObjectMixin (via django.views.generic.dates.BaseDateListView), kommer mallens sammanhang att vara:

  • date_list: Ett QuerySet-objekt som innehåller alla månader som har objekt tillgängliga enligt queryset, representerade som datetime.datetime-objekt, i stigande ordning.

  • year: Ett date-objekt som representerar det angivna året.

  • next_year: Ett date-objekt som representerar den första dagen i nästa år, enligt allow_empty och allow_future.

  • previous_year: Ett date-objekt som representerar den första dagen i det föregående året, enligt allow_empty och allow_future.

Noter

  • Använder standardvärdet för template_name_suffix _archive_year.

Exempel myapp/views.py:

Code
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

Exempel myapp/urls.py:

Code
from django.urls import path

from myapp.views import ArticleYearArchiveView

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

Exempel myapp/article_archive_year.html:

Django template
<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>

MonthArchiveViewLink to this heading

class MonthArchiveViewLink to this definition

En månatlig arkivsida som visar alla objekt under en viss månad. Objekt med ett datum i framtiden visas inte om du inte har ställt in allow_future till True.

Ancestors (MRO)

Kontext

Förutom det sammanhang som tillhandahålls av MultipleObjectMixin (via BaseDateListView), kommer mallens sammanhang att vara:

  • datum_lista: Ett QuerySet-objekt som innehåller alla dagar som har objekt tillgängliga i den angivna månaden, enligt queryset, representerade som datetime.datetime-objekt, i stigande ordning.

  • month: Ett date-objekt som representerar den angivna månaden.

  • next_month: Ett date-objekt som representerar den första dagen i nästa månad, enligt allow_empty och allow_future.

  • previous_month: Ett date-objekt som representerar den första dagen i föregående månad, enligt allow_empty och allow_future.

Noter

  • Använder standardvärdet för template_name_suffix _archive_month.

Exempel myapp/views.py:

Code
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

Exempel myapp/urls.py:

Code
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",
    ),
]

Exempel myapp/article_archive_month.html:

Django template
<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>

WeekArchiveViewLink to this heading

class WeekArchiveViewLink to this definition

En veckovis arkivsida som visar alla objekt under en viss vecka. Objekt med ett datum i framtiden visas inte om du inte har ställt in allow_future till True.

Ancestors (MRO)

Kontext

Förutom det sammanhang som tillhandahålls av MultipleObjectMixin (via BaseDateListView), kommer mallens sammanhang att vara:

  • week: Ett date-objekt som representerar den första dagen i den angivna veckan.

  • next_week: Ett date-objekt som representerar den första dagen i nästa vecka, enligt allow_empty och allow_future.

  • previous_week: Ett date-objekt som representerar den första dagen i föregående vecka, enligt allow_empty och allow_future.

Noter

  • Använder standardvärdet för template_name_suffix _archive_week.

  • Attributet week_format är en strptime() formatsträng som används för att tolka veckonumret. Följande värden stöds:

    • '%U': Baserat på USA:s veckosystem där veckan börjar på söndag. Detta är standardvärdet.

    • '%W': Liknar '%U', men antar att veckan börjar på måndag. Detta är inte samma sak som ISO 8601-veckonumret.

    • '%V': ISO 8601 veckonummer där veckan börjar på måndag.

Exempel myapp/views.py:

Code
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

Exempel myapp/urls.py:

Code
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",
    ),
]

Exempel myapp/article_archive_week.html:

Django template
<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>

I det här exemplet skriver du ut veckonumret. Tänk på att veckonummer som beräknas av mallfiltret date med formattecknet 'W' inte alltid är samma som de som beräknas av strftime() och strptime() med formatsträngen '%W'. För år 2015, till exempel, är veckonummer som matas ut av date högre med ett jämfört med de som matas ut av strftime(). Det finns ingen motsvarighet till formatsträngen '%U' strftime() i date. Därför bör du undvika att använda date för att generera URL:er för WeekArchiveView.

DayArchiveViewLink to this heading

class DayArchiveViewLink to this definition

En dagarkivsida som visar alla objekt under en viss dag. Dagar i framtiden ger ett 404-fel, oavsett om det finns några objekt för framtida dagar, såvida du inte har ställt in allow_future till True.

Ancestors (MRO)

Kontext

Förutom det sammanhang som tillhandahålls av MultipleObjectMixin (via BaseDateListView), kommer mallens sammanhang att vara:

Noter

  • Använder standardvärdet för template_name_suffix _archive_day.

Exempel myapp/views.py:

Code
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

Exempel myapp/urls.py:

Code
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",
    ),
]

Exempel myapp/article_archive_day.html:

Django template
<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>

TodayArchiveViewLink to this heading

class TodayArchiveViewLink to this definition

En dagarkivsida som visar alla objekt för today. Detta är exakt samma sak som django.views.generic.dates.DayArchiveView, förutom att dagens datum används istället för argumenten år/månad/dag.

Ancestors (MRO)

Noter

  • Använder standardvärdet template_name_suffix _archive_today.

Exempel myapp/views.py:

Code
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

Exempel myapp/urls.py:

Code
from django.urls import path

from myapp.views import ArticleTodayArchiveView

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

DateDetailViewLink to this heading

class DateDetailViewLink to this definition

En sida som representerar ett enskilt objekt. Om objektet har ett datumvärde i framtiden kommer vyn att ge ett 404-fel som standard, såvida du inte ställer in allow_future till True.

Ancestors (MRO)

Kontext

  • Innehåller det enskilda objekt som är associerat med den modell som anges i DateDetailView.

Noter

  • Använder standardvärdet template_name_suffix för _detail.

Exempel myapp/urls.py:

Code
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",
    ),
]

Exempel myapp/article_detail.html:

Django template
<h1>{{ object.title }}</h1>