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_futuretillTrue.Ancestors (MRO)
Kontext
Förutom det sammanhang som tillhandahålls av
django.views.generic.list.MultipleObjectMixin(viadjango.views.generic.dates.BaseDateListView), kommer mallens sammanhang att vara:date_list: EttQuerySet-objekt som innehåller alla år som har objekt tillgängliga enligtqueryset, representerade somdatetime.datetime-objekt, i fallande ordning.
Noter
Använder ett standardnamn för
context_object_namepålatest.Använder standardvärdet
template_name_suffixför_archive.Standard är att tillhandahålla
date_listper år, men detta kan ändras till månad eller dag med hjälp av attributetdate_list_period. Detta gäller även för alla underklassvyer.
Exempel 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", ), ]Exempel myapp/article_archive.html:
<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_futuretillTrue.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. OmFalse, kommer frågeuppsättningenNoneatt användas som objektlista. Som standard är dettaFalse.
- get_make_object_list()Link to this definition
Bestämmer om en objektlista ska returneras som en del av kontexten. Returnerar
make_object_listsom standard.
Kontext
Förutom det sammanhang som tillhandahålls av
django.views.generic.list.MultipleObjectMixin(viadjango.views.generic.dates.BaseDateListView), kommer mallens sammanhang att vara:date_list: EttQuerySet-objekt som innehåller alla månader som har objekt tillgängliga enligtqueryset, representerade somdatetime.datetime-objekt, i stigande ordning.year: Ettdate-objekt som representerar det angivna året.next_year: Ettdate-objekt som representerar den första dagen i nästa år, enligtallow_emptyochallow_future.previous_year: Ettdate-objekt som representerar den första dagen i det föregående året, enligtallow_emptyochallow_future.
Noter
Använder standardvärdet för
template_name_suffix_archive_year.
Exempel 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 = TrueExempel myapp/urls.py:
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:
<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_futuretillTrue.Ancestors (MRO)
Kontext
Förutom det sammanhang som tillhandahålls av
MultipleObjectMixin(viaBaseDateListView), kommer mallens sammanhang att vara:datum_lista: EttQuerySet-objekt som innehåller alla dagar som har objekt tillgängliga i den angivna månaden, enligtqueryset, representerade somdatetime.datetime-objekt, i stigande ordning.month: Ettdate-objekt som representerar den angivna månaden.next_month: Ettdate-objekt som representerar den första dagen i nästa månad, enligtallow_emptyochallow_future.previous_month: Ettdate-objekt som representerar den första dagen i föregående månad, enligtallow_emptyochallow_future.
Noter
Använder standardvärdet för
template_name_suffix_archive_month.
Exempel 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 = TrueExempel 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", ), ]Exempel myapp/article_archive_month.html:
<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_futuretillTrue.Ancestors (MRO)
Kontext
Förutom det sammanhang som tillhandahålls av
MultipleObjectMixin(viaBaseDateListView), kommer mallens sammanhang att vara:week: Ettdate-objekt som representerar den första dagen i den angivna veckan.next_week: Ettdate-objekt som representerar den första dagen i nästa vecka, enligtallow_emptyochallow_future.previous_week: Ettdate-objekt som representerar den första dagen i föregående vecka, enligtallow_emptyochallow_future.
Noter
Använder standardvärdet för
template_name_suffix_archive_week.Attributet
week_formatär enstrptime()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:
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 = TrueExempel 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", ), ]Exempel myapp/article_archive_week.html:
<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
datemed formattecknet'W'inte alltid är samma som de som beräknas avstrftime()ochstrptime()med formatsträngen'%W'. För år 2015, till exempel, är veckonummer som matas ut avdatehögre med ett jämfört med de som matas ut avstrftime(). Det finns ingen motsvarighet till formatsträngen'%U'strftime()idate. Därför bör du undvika att användadateför att generera URL:er förWeekArchiveView.
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_futuretillTrue.Ancestors (MRO)
Kontext
Förutom det sammanhang som tillhandahålls av
MultipleObjectMixin(viaBaseDateListView), kommer mallens sammanhang att vara:day: Ettdate-objekt som representerar den angivna dagen.next_day: Ettdate-objekt som representerar nästa dag, enligtallow_emptyochallow_future.previous_day: Ettdate-objekt som representerar föregående dag, enligtallow_emptyochallow_future.next_month: Ettdate-objekt som representerar den första dagen i nästa månad, enligtallow_emptyochallow_future.previous_month: Ettdate-objekt som representerar den första dagen i föregående månad, enligtallow_emptyochallow_future.
Noter
Använder standardvärdet för
template_name_suffix_archive_day.
Exempel 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 = TrueExempel 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", ), ]Exempel myapp/article_archive_day.html:
<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:
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 = TrueExempel myapp/urls.py:
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_futuretillTrue.Ancestors (MRO)
Kontext
Innehåller det enskilda objekt som är associerat med den
modellsom anges iDateDetailView.
Noter
Använder standardvärdet
template_name_suffixför_detail.
Exempel 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", ), ]Exempel myapp/article_detail.html:
<h1>{{ object.title }}</h1>