Tampilan memperlihatkan umum

Dua tampilan berdasarkan-kelas umum berikut dirancang untuk menampilkan data. pada banyak proyek mereka khususnya paling umum menggunakan tampilan.

DetailView

class 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:

Metode Diagram alir

  1. dispatch()
  2. http_method_not_allowed()
  3. get_template_names()
  4. get_slug_field()
  5. get_queryset()
  6. get_object()
  7. get_context_object_name()
  8. get_context_data()
  9. get()
  10. render_to_response()

Contoh myapp/views.py:

from django.views.generic.detail import DetailView
from django.utils import timezone

from articles.models import Article

class ArticleDetailView(DetailView):

    model = Article

    def get_context_data(self, **kwargs):
        context = super(ArticleDetailView, self).get_context_data(**kwargs)
        context['now'] = timezone.now()
        return context

Contoh myapp/urls.py:

from django.conf.urls import url

from article.views import ArticleDetailView

urlpatterns = [
    url(r'^(?P<slug>[-\w]+)/$', 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

class 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 Run as administrator. Anda butuh keluar dan masuk kembali untuk pengaturan mengambil pengaruh.

Ancestors (MRO)

Tampilan ini mewarisi metode dan atribut dari tampilan berikut:

Metode Diagram alir

  1. dispatch()
  2. http_method_not_allowed()
  3. get_template_names()
  4. get_queryset()
  5. get_context_object_name()
  6. get_context_data()
  7. get()
  8. render_to_response()

Contoh views.py:

from django.views.generic.list import ListView
from django.utils import timezone

from articles.models import Article

class ArticleListView(ListView):

    model = Article

    def get_context_data(self, **kwargs):
        context = super(ArticleListView, self).get_context_data(**kwargs)
        context['now'] = timezone.now()
        return context

Contoh myapp/urls.py:

from django.conf.urls import url

from article.views import ArticleListView

urlpatterns = [
    url(r'^$', 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>
class 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.