Tôi đã đọc một số hướng dẫn và sách về generic views.Để sử dụng trong Django: ListView hoặc list_detail?
Trong part 4 of the official tutorial, họ đã viết một ví dụ như thế này
from django.conf.urls import patterns, include, url
from django.views.generic import DetailView, ListView
from polls.models import Poll
urlpatterns = patterns('',
url(r'^$',
ListView.as_view(
queryset=Poll.objects.order_by('-pub_date')[:5],
context_object_name='latest_poll_list',
template_name='polls/index.html')),
url(r'^(?P<pk>\d+)/$',
DetailView.as_view(
model=Poll,
template_name='polls/detail.html')),
url(r'^(?P<pk>\d+)/results/$',
DetailView.as_view(
model=Poll,
template_name='polls/results.html'),
name='poll_results'),
url(r'^(?P<poll_id>\d+)/vote/$', 'polls.views.vote'),
)
Tôi cũng đã được đọc The Definitive Guide to Django: Web Development Done Right, Second Edition và khi họ nói về quan điểm chung, họ đã viết tấm gương của họ như thế này
from django.conf.urls.defaults import *
from django.views.generic import list_detail
from mysite.books.models import Publisher
publisher_info = {
'queryset': Publisher.objects.all(),
'template_name': 'publisher_list_page.html',
}
urlpatterns = patterns('',
(r'^publishers/$', list_detail.object_list, publisher_info)
)
Tôi có nên được sử dụng ListView
hoặc list_detail
? Cả hai đều đến từ django.views.generic
. Nếu cả hai có thể được sử dụng, thì sự khác biệt (lợi thế và so sánh bất lợi) là gì?
Trong trường hợp giúp, tôi sẽ giải thích mục tiêu của mình: Trong dự án của tôi, tôi muốn liệt kê các đơn đặt hàng công việc, và sau đó tôi muốn xem chi tiết mỗi đơn đặt hàng công việc. tương tự như bình luận cho mỗi bài đăng trên blog).
Tôi thực sự không hiểu tài liệu chế độ xem chung dựa trên Lớp học. Ví dụ, đối với ['ListView'] (https://docs.djangoproject.com/en/dev/ref/class-based-views/#list-views), tại sao mục nhập lại quá ngắn? Tôi có thể tìm danh sách tất cả các phương pháp và biến số ở đâu? – hobbes3
Thật không may, đó là một phần của tài liệu xấu trên một phần của Django (một phần vì đa thừa kế). Nhưng bạn có thể xem những gì họ phân lớp: ví dụ: - https://docs.djangoproject.com/en/dev/ref/class-based-views/#django.views.generic.list.MultipleObjectMixin – Jeff