Dua tampilan berdasarkan-kelas umum berikut dirancang untuk menampilkan data. pada banyak proyek mereka khususnya paling umum menggunakan tampilan.
DetailView
¶django.views.generic.detail.
DetailView
¶Selagi tampilan ini dikerjakan, self.object
akan mengandung obyek yang tampilan beroperasi pada.
Ancestors (MRO)
Tampilan ini mewarisi metode dan atribut dari tampilan berikut:
django.views.generic.detail.SingleObjectTemplateResponseMixin
django.views.generic.base.TemplateResponseMixin
django.views.generic.detail.BaseDetailView
django.views.generic.detail.SingleObjectMixin
django.views.generic.base.View
Metode Diagram alir
setup()
dispatch()
http_method_not_allowed()
get_template_names()
get_slug_field()
get_queryset()
get_object()
get_context_object_name()
get_context_data()
get()
render_to_response()
Contoh myapp/views.py:
from django.utils import timezone
from django.views.generic.detail import DetailView
from articles.models import Article
class ArticleDetailView(DetailView):
model = Article
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['now'] = timezone.now()
return context
Contoh myapp/urls.py:
from django.urls import path
from article.views import ArticleDetailView
urlpatterns = [
path('<slug:slug>/', ArticleDetailView.as_view(), name='article-detail'),
]
Contoh myapp/article_detail.html:
<h1>{{ object.headline }}</h1>
<p>{{ object.content }}</p>
<p>Reporter: {{ object.reporter }}</p>
<p>Published: {{ object.pub_date|date }}</p>
<p>Date: {{ now|date }}</p>
ListView
¶django.views.generic.list.
ListView
¶Sebuah halaman yang mewakili daftar dari obyek.
Hak administrator diwajibkan untuk mengerjakan perintah ini. Untuk melakukan ini, klik-kanan pada geodjango_setup.bat
dan pilih . Anda butuh keluar dan masuk kembali untuk pengaturan mengambil pengaruh.
Ancestors (MRO)
Tampilan ini mewarisi metode dan atribut dari tampilan berikut:
django.views.generic.list.MultipleObjectTemplateResponseMixin
django.views.generic.base.TemplateResponseMixin
django.views.generic.list.BaseListView
django.views.generic.list.MultipleObjectMixin
django.views.generic.base.View
Metode Diagram alir
setup()
dispatch()
http_method_not_allowed()
get_template_names()
get_queryset()
get_context_object_name()
get_context_data()
get()
render_to_response()
Contoh views.py:
from django.utils import timezone
from django.views.generic.list import ListView
from articles.models import Article
class ArticleListView(ListView):
model = Article
paginate_by = 100 # if pagination is desired
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['now'] = timezone.now()
return context
Contoh myapp/urls.py:
from django.urls import path
from article.views import ArticleListView
urlpatterns = [
path('', ArticleListView.as_view(), name='article-list'),
]
Contoh myapp/article_list.html:
<h1>Articles</h1>
<ul>
{% for article in object_list %}
<li>{{ article.pub_date|date }} - {{ article.headline }}</li>
{% empty %}
<li>No articles yet.</li>
{% endfor %}
</ul>
Jika anda menggunakan penomoran, anda dapat memakai example template from the pagination docs. Rubah instance dari contacts
dalam contoh cetakan itu menjadi page_obj
.
django.views.generic.list.
BaseListView
¶Sebuah tampilan dasar untuk memperlihatkan daftar obyek. Itu tidak dimaksud digunakan secara langsung, tetapi lebih sebagai sebuah kelas induk dari django.views.generic.list.ListView
atau tampilan lain mewakili daftar obyek-obyek.
Ancestors (MRO)
Tampilan ini mewarisi metode dan atribut dari tampilan berikut:
Cara
get
(request, *args, **kwargs)¶Tambah object_list
ke konteks. Jika allow_empty
adalah True kemudian perlihatkan sebuah daftar kosong. Jika allow_empty
adalah False kemudian memunculkan sebuah kesalahan 404.
Des 02, 2019