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. setup()
  2. dispatch()
  3. http_method_not_allowed()
  4. get_template_names()
  5. get_slug_field()
  6. get_queryset()
  7. get_object()
  8. get_context_object_name()
  9. get_context_data()
  10. get()
  11. 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>
class django.views.generic.detail.BaseDetailView

A base view for displaying a single object. It is not intended to be used directly, but rather as a parent class of the django.views.generic.detail.DetailView or other views representing details of a single object.

Ancestors (MRO)

Tampilan ini mewarisi metode dan atribut dari tampilan berikut:

Cara

get(request, *args, **kwargs)

Adds object to the context.

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. setup()
  2. dispatch()
  3. http_method_not_allowed()
  4. get_template_names()
  5. get_queryset()
  6. get_context_object_name()
  7. get_context_data()
  8. get()
  9. 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>

If you're using pagination, you can adapt the example template from the pagination docs.

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.