Generic date viewsLink to this heading

Tampilan umum berdasarkan-tanggal, disediakan di django.views.generic.dates, adalah tampilan untuk menampilkan halaman-halaman penelusuran untuk data berdasarkan-tanggal.

ArchiveIndexViewLink to this heading

class ArchiveIndexViewLink to this definition

Halaman indeks tingkat-atas menampilkan obyek "latest", berdasarkan tanggal. Obyek dengan sebuah tanggal di future tidak disertakan meskipun anda menyetel allow_future menjadi True.

Ancestors (MRO)

Konteks

Sebagai tambahan pada konteks disediakan oleh django.views.generic.list.MultipleObjectMixin (melalui django.views.generic.dates.BaseDateListView), konteks cetakan akan menjadi:

  • date_list: Sebuah obyek QuerySet mengandung semua tahun yang mempunyai obyek-obyek tersedia menurut pada queryset, diwakili sebagai obyek datetime.datetime, dalam urutan menurun.

Catatan

  • Menggunakan context_object_name awal dari latest.

  • Menggunakan template_name_suffix awal dari _archive.

  • Awalan untuk menyediakan date_list berdasarkan tahun, tetapi ini dapat dirubah menjadi bulan atau hari menggunakan atribut date_list_period. Ini juga memberlakukan ke semua tampilan subkelas.

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

Contoh myapp/article_archive.html:

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

Ini akan mengeluarkan semua artikel.

YearArchiveViewLink to this heading

class YearArchiveViewLink to this definition

Halaman arsip tahunan menampilkan semua bulan tersedia di tahun yang diberikan. Obyek-obyek dengan tanggal future tidak ditampilkan meskipun anda menyetel allow_future menjadi True.

Ancestors (MRO)

make_object_listLink to this definition

Sebuah boolean menentukan apakah mengambil daftar penuh dari obyek-obyek untuk tahun ini dan melewatkan itu ke cetakan. Jika True, daftar dari obyek-obyek akan dibuat tersedia ke konteks. Jika False, queryset None akan digunakan sebagai daftar obyek. Secara awalan, ini adalah False.

get_make_object_list()Link to this definition

Menentukan jika sebuah daftar obyek akan dikembalikan sebagai bagian dari konteks. Mengembalikan make_object_list secara awalan.

Konteks

Sebagai tambahan pada konteks disediakan oleh django.views.generic.list.MultipleObjectMixin (melalui django.views.generic.dates.BaseDateListView), konteks cetakan akan menjadi:

  • date_list: Sebuah obyek QuerySet mengandung semua bulan yang mempunyai obyek-obyek tersedia menurut pada queryset, diwakili sebagai obyek datetime.datetime, dalam urutan menaik.

  • year: Sebuah obyek date mewakili tahun yang diberikan.

  • next_year: Sebuah obyek date mewakili hari pertama dari tahun selanjutnya menurut allow_empty dan allow_future.

  • previous_year: Sebuah obyek date mewakili hari pertama dari tahun sebelumnya, menurut allow_empty dan allow_future.

Catatan

  • Menggunakan template_name_suffix awal dari _archive_year.

Contoh 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

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

Contoh 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

Halaman arsip tahunan menampilkan semua obyek di tahun yang diberikan. Obyek-obyek dengan tanggal future tidak ditampilkan meskipun anda menyetel allow_future menjadi True.

Ancestors (MRO)

Konteks

Sebagai tambahan pada konteks disediakan oleh MultipleObjectMixin (melalui django.views.generic.dates.BaseDateListView), konteks cetakan akan menjadi:

  • date_list: Sebuah obyek QuerySet mengandung semua hari yang mempunyai obyek-obyek tersedia di bulan yang diberikan, menurut pada queryset, diwakili sebagai obyek datetime.datetime, dalam urutan menaik.

  • month: Sebuah obyek date mewakili bulanyang diberikan.

  • next_month: Sebuah obyek date mewakili hari pertama dari bulan selanjutnya menurut allow_empty dan allow_future.

  • previous_month: Sebuah obyek date mewakili hari pertama dari bulan sebelumnya, menurut allow_empty dan allow_future.

Catatan

  • Menggunakan template_name_suffix awal dari _archive_month.

Contoh 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

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

Contoh 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

Halaman arsip tahunan menampilkan semua obyek di minggu yang diberikan. Obyek-obyek dengan tanggal future tidak ditampilkan meskipun anda menyetel allow_future menjadi True.

Ancestors (MRO)

Konteks

Sebagai tambahan pada konteks disediakan oleh MultipleObjectMixin (melalui django.views.generic.dates.BaseDateListView), konteks cetakan akan menjadi:

  • week: Sebuah obyek date mewakili hari pertama dari minggu yang diberikan.

  • next_week: Sebuah obyek date mewakili hari pertama dari minggu selanjutnya menurut allow_empty dan allow_future.

  • previous_week: Sebuah obyek date mewakili hari pertama dari minggu sebelumnya, menurut allow_empty dan allow_future.

Catatan

  • Menggunakan template_name_suffix awal dari _archive_week.

  • Atribut week_format adalah sebuah bentuk string strptime() digunakan untuk mengurai nomor minggu. Nilai-nilai berikut adalah didukung:

    • '%U': Berdasarkan pada sistem minggu Amerika Serikat dimana minggu dimulai pada hari Minggu. Ini adalah nilai awalan.

    • '%W': Mirip pada '%U', kecuali itu menganggap bahwa minggu dimulai pada hari Senin. Ini tidak sama seperti nomor minggu ISO 8601.

    • '%V': ISO 8601 week number where the week begins on Monday.

Contoh 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

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

Contoh 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>

Di contoh ini, anda mengeluarkan nomor minggu. Harap diingat bahwa nomor minggu dihitung oleh penyaring cetakan date dengan karakter bentuk 'W' tidak selalu sama ketika itu dihitung oleh strftime() dan strptime() dengan string bentuk strptime(). untuk tahun 2015, sebagai keluaran contoh nomor minggu oleh date adalah lebih tinggi oleh satu dibandingkan ke keluarannya oleh strftime(). Tidak ada setara untuk string bentuk '%U'` strftime() di date. Karena itu, anda harus menghindari menggunakan date untuk membangkitkan URL untuk WeekArchiveView.

DayArchiveViewLink to this heading

class DayArchiveViewLink to this definition

Halaman arsip tahunan menampilkan semua obyek di hari yang diberikan. Hari-hari d masa depan melemparkan sebuah kesalahan 404, terlepas dari apapun setiap obyek ada untuk hari akan datang, meskipun anda menyetel allow_future menjadi True.

Ancestors (MRO)

Konteks

Sebagai tambahan pada konteks disediakan oleh MultipleObjectMixin (melalui django.views.generic.dates.BaseDateListView), konteks cetakan akan menjadi:

Catatan

  • Menggunakan template_name_suffix awal dari _archive_day.

Contoh 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

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

Contoh 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

Halaman arsip hari menampilkan semua obyek untuk today. Ini sebenarnya sama seperti django.views.generic.dates.DayArchiveView, kecuali tanggal hari ini digunakan daripada argumen year/month/day.

Ancestors (MRO)

Catatan

  • Menggunakan template_name_suffix awal dari _archive_today.

Contoh 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

Contoh 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

Sebuah halaman mewakili obyek perseorangan. Jika obyek mempunyai nilai tanggal di masa depan, tampilan akan melempar sebuah kesalahan 404 secara awalan, meskipun anda menyetel allow_future menjadi True.

Ancestors (MRO)

Konteks

  • Disertakan obyek tunggal terkait dengan model ditentukan di DateDetailView.

Catatan

  • Menggunakan template_name_suffix awal dari _detail.

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

Contoh myapp/article_detail.html:

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