【发布时间】:2020-11-16 03:59:59
【问题描述】:
最后提到的问题。
所以我安装了 pinax 博客应用程序并添加到我安装的应用程序中,迁移并设置了它的所有依赖项。 然后我将它添加到我项目中的 urlpatterns 中:
urlpatterns = [
path('admin/', admin.site.urls),
url(r"^blog/", include("pinax.blog.urls", namespace="pinax_blog")),
url(r"^ajax/images/", include("pinax.images.urls", namespace="pinax_images")),
]
pinax.blog.urls 中的 urpatterns 是:
urlpatterns = [
url(r"^$", BlogIndexView.as_view(), name="blog"),
url(r"^section/(?P<section>[-\w]+)/$", SectionIndexView.as_view(), name="blog_section"),
url(r"^post/(?P<post_pk>\d+)/$", StaffPostDetailView.as_view(), name="blog_post_pk"),
url(r"^post/(?P<post_secret_key>\w+)/$", SecretKeyPostDetailView.as_view(), name="blog_post_secret"),
url(r"^feed/(?P<section>[-\w]+)/(?P<feed_type>[-\w]+)/$", blog_feed, name="blog_feed"),
# authoring
url(r"^manage/posts/$", ManagePostList.as_view(), name="manage_post_list"),
url(r"^manage/posts/create/$", ManageCreatePost.as_view(), name="manage_post_create"),
url(r"^manage/posts/(?P<post_pk>\d+)/update/$", ManageUpdatePost.as_view(), name="manage_post_update"),
url(r"^manage/posts/(?P<post_pk>\d+)/delete/$", ManageDeletePost.as_view(), name="manage_post_delete"),
url(r"^ajax/markdown/preview/$", ajax_preview, name="ajax_preview")
]
BlogIndexView:
class BlogIndexView(ListView):
model = Post
template_name = "pinax/blog/blog_list.html"
search_parameter = "q"
paginate_by = settings.PINAX_BLOG_PAGINATE_BY
def get_current_section(self):
return "all"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context.update({
"current_section": self.get_current_section(),
"search_term": self.search_term()
})
return context
def search_term(self):
return self.request.GET.get(self.search_parameter)
def search(self, posts):
q = self.search_term()
if q:
posts = posts.filter(
Q(title__icontains=q) | Q(teaser_html__icontains=q) | Q(content_html__icontains=q)
)
return posts
def get_queryset(self):
blog = hookset.get_blog(**self.kwargs)
qs = Post.objects.current().filter(blog=blog).select_related("section", "blog")
return self.search(qs)
问题:
当我运行服务器并转到http://127.0.0.1:8000/blog/ 时,BlogIndexView 应该根据 pinax_blog 的 url 模式的第一个 url 模式工作,并且应该加载 template_name = "pinax/blog/blog_list.html"。但模板不会加载名为 site_base.html 的不同模板,而是加载。任何想法为什么?
【问题讨论】: