kopia lustrzana https://github.com/wagtail/wagtail
Convert page type usage view to a class-based view
rodzic
ce5a8a33eb
commit
aa81dfd6fe
|
@ -34,7 +34,7 @@ urlpatterns = [
|
|||
),
|
||||
path(
|
||||
"usage/<slug:content_type_app_name>/<slug:content_type_model_name>/",
|
||||
usage.content_type_use,
|
||||
usage.ContentTypeUseView.as_view(),
|
||||
name="type_use",
|
||||
),
|
||||
path("<int:page_id>/usage/", usage.UsageView.as_view(), name="usage"),
|
||||
|
|
|
@ -3,40 +3,42 @@ from django.core.exceptions import PermissionDenied
|
|||
from django.core.paginator import Paginator
|
||||
from django.http import Http404
|
||||
from django.template.response import TemplateResponse
|
||||
from django.views.generic import View
|
||||
|
||||
from wagtail.admin.views import generic
|
||||
from wagtail.models import Page
|
||||
|
||||
|
||||
def content_type_use(request, content_type_app_name, content_type_model_name):
|
||||
try:
|
||||
content_type = ContentType.objects.get_by_natural_key(
|
||||
content_type_app_name, content_type_model_name
|
||||
class ContentTypeUseView(View):
|
||||
def get(self, request, content_type_app_name, content_type_model_name):
|
||||
try:
|
||||
content_type = ContentType.objects.get_by_natural_key(
|
||||
content_type_app_name, content_type_model_name
|
||||
)
|
||||
except ContentType.DoesNotExist:
|
||||
raise Http404
|
||||
|
||||
page_class = content_type.model_class()
|
||||
|
||||
# page_class must be a Page type and not some other random model
|
||||
if not issubclass(page_class, Page):
|
||||
raise Http404
|
||||
|
||||
pages = page_class.objects.all().specific(defer=True)
|
||||
|
||||
paginator = Paginator(pages, per_page=10)
|
||||
pages = paginator.get_page(request.GET.get("p"))
|
||||
|
||||
return TemplateResponse(
|
||||
request,
|
||||
"wagtailadmin/pages/content_type_use.html",
|
||||
{
|
||||
"pages": pages,
|
||||
"app_name": content_type_app_name,
|
||||
"content_type": content_type,
|
||||
"page_class": page_class,
|
||||
},
|
||||
)
|
||||
except ContentType.DoesNotExist:
|
||||
raise Http404
|
||||
|
||||
page_class = content_type.model_class()
|
||||
|
||||
# page_class must be a Page type and not some other random model
|
||||
if not issubclass(page_class, Page):
|
||||
raise Http404
|
||||
|
||||
pages = page_class.objects.all().specific(defer=True)
|
||||
|
||||
paginator = Paginator(pages, per_page=10)
|
||||
pages = paginator.get_page(request.GET.get("p"))
|
||||
|
||||
return TemplateResponse(
|
||||
request,
|
||||
"wagtailadmin/pages/content_type_use.html",
|
||||
{
|
||||
"pages": pages,
|
||||
"app_name": content_type_app_name,
|
||||
"content_type": content_type,
|
||||
"page_class": page_class,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
class UsageView(generic.UsageView):
|
||||
|
|
Ładowanie…
Reference in New Issue