mirror of
https://github.com/django/django.git
synced 2024-12-22 17:16:24 +00:00
This commit is contained in:
parent
4fcbdb11b1
commit
968397228f
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
<h1>{{ name }}</h1>
|
<h1>{{ name }}</h1>
|
||||||
|
|
||||||
<h2 class="subhead">{{ summary|striptags }}</h2>
|
<h2 class="subhead">{{ summary }}</h2>
|
||||||
|
|
||||||
{{ body }}
|
{{ body }}
|
||||||
|
|
||||||
|
@ -242,3 +242,7 @@ def remove_non_capturing_groups(pattern):
|
|||||||
final_pattern += pattern[prev_end:start]
|
final_pattern += pattern[prev_end:start]
|
||||||
prev_end = end
|
prev_end = end
|
||||||
return final_pattern + pattern[prev_end:]
|
return final_pattern + pattern[prev_end:]
|
||||||
|
|
||||||
|
|
||||||
|
def strip_p_tags(value):
|
||||||
|
return mark_safe(value.replace("<p>", "").replace("</p>", ""))
|
||||||
|
@ -30,7 +30,7 @@ from django.utils.inspect import (
|
|||||||
from django.utils.translation import gettext as _
|
from django.utils.translation import gettext as _
|
||||||
from django.views.generic import TemplateView
|
from django.views.generic import TemplateView
|
||||||
|
|
||||||
from .utils import get_view_name
|
from .utils import get_view_name, strip_p_tags
|
||||||
|
|
||||||
# Exclude methods starting with these strings from documentation
|
# Exclude methods starting with these strings from documentation
|
||||||
MODEL_METHODS_EXCLUDE = ("_", "add_", "delete", "save", "set_")
|
MODEL_METHODS_EXCLUDE = ("_", "add_", "delete", "save", "set_")
|
||||||
@ -195,7 +195,7 @@ class ViewDetailView(BaseAdminDocsView):
|
|||||||
**{
|
**{
|
||||||
**kwargs,
|
**kwargs,
|
||||||
"name": view,
|
"name": view,
|
||||||
"summary": title,
|
"summary": strip_p_tags(title),
|
||||||
"body": body,
|
"body": body,
|
||||||
"meta": metadata,
|
"meta": metadata,
|
||||||
}
|
}
|
||||||
@ -384,7 +384,7 @@ class ModelDetailView(BaseAdminDocsView):
|
|||||||
**{
|
**{
|
||||||
**kwargs,
|
**kwargs,
|
||||||
"name": opts.label,
|
"name": opts.label,
|
||||||
"summary": title,
|
"summary": strip_p_tags(title),
|
||||||
"description": body,
|
"description": body,
|
||||||
"fields": fields,
|
"fields": fields,
|
||||||
"methods": methods,
|
"methods": methods,
|
||||||
|
@ -89,6 +89,18 @@ class AdminDocViewTests(TestDataMixin, AdminDocsTestCase):
|
|||||||
# View docstring
|
# View docstring
|
||||||
self.assertContains(response, "Base view for admindocs views.")
|
self.assertContains(response, "Base view for admindocs views.")
|
||||||
|
|
||||||
|
def testview_docstring_links(self):
|
||||||
|
summary = (
|
||||||
|
'<h2 class="subhead">This is a view for '
|
||||||
|
'<a class="reference external" href="/admindocs/models/myapp.company/">'
|
||||||
|
"myapp.Company</a></h2>"
|
||||||
|
)
|
||||||
|
url = reverse(
|
||||||
|
"django-admindocs-views-detail", args=["admin_docs.views.CompanyView"]
|
||||||
|
)
|
||||||
|
response = self.client.get(url)
|
||||||
|
self.assertContains(response, summary, html=True)
|
||||||
|
|
||||||
@override_settings(ROOT_URLCONF="admin_docs.namespace_urls")
|
@override_settings(ROOT_URLCONF="admin_docs.namespace_urls")
|
||||||
def test_namespaced_view_detail(self):
|
def test_namespaced_view_detail(self):
|
||||||
url = reverse(
|
url = reverse(
|
||||||
@ -408,9 +420,9 @@ class TestModelDetailView(TestDataMixin, AdminDocsTestCase):
|
|||||||
|
|
||||||
def test_model_docstring_renders_correctly(self):
|
def test_model_docstring_renders_correctly(self):
|
||||||
summary = (
|
summary = (
|
||||||
'<h2 class="subhead"><p>Stores information about a person, related to '
|
'<h2 class="subhead">Stores information about a person, related to '
|
||||||
'<a class="reference external" href="/admindocs/models/myapp.company/">'
|
'<a class="reference external" href="/admindocs/models/myapp.company/">'
|
||||||
"myapp.Company</a>.</p></h2>"
|
"myapp.Company</a>.</h2>"
|
||||||
)
|
)
|
||||||
subheading = "<p><strong>Notes</strong></p>"
|
subheading = "<p><strong>Notes</strong></p>"
|
||||||
body = (
|
body = (
|
||||||
|
@ -14,6 +14,7 @@ urlpatterns = [
|
|||||||
path("admin/", admin.site.urls),
|
path("admin/", admin.site.urls),
|
||||||
path("admindocs/", include("django.contrib.admindocs.urls")),
|
path("admindocs/", include("django.contrib.admindocs.urls")),
|
||||||
path("", include(ns_patterns, namespace="test")),
|
path("", include(ns_patterns, namespace="test")),
|
||||||
|
path("company/", views.CompanyView.as_view()),
|
||||||
path("xview/func/", views.xview_dec(views.xview)),
|
path("xview/func/", views.xview_dec(views.xview)),
|
||||||
path("xview/class/", views.xview_dec(views.XViewClass.as_view())),
|
path("xview/class/", views.xview_dec(views.XViewClass.as_view())),
|
||||||
path("xview/callable_object/", views.xview_dec(views.XViewCallableObject())),
|
path("xview/callable_object/", views.xview_dec(views.XViewCallableObject())),
|
||||||
|
@ -18,3 +18,12 @@ class XViewClass(View):
|
|||||||
class XViewCallableObject(View):
|
class XViewCallableObject(View):
|
||||||
def __call__(self, request):
|
def __call__(self, request):
|
||||||
return HttpResponse()
|
return HttpResponse()
|
||||||
|
|
||||||
|
|
||||||
|
class CompanyView(View):
|
||||||
|
"""
|
||||||
|
This is a view for :model:`myapp.Company`
|
||||||
|
"""
|
||||||
|
|
||||||
|
def get(self, request):
|
||||||
|
return HttpResponse()
|
||||||
|
Loading…
Reference in New Issue
Block a user