【发布时间】:2021-05-20 11:15:25
【问题描述】:
我有另一篇与此相关的帖子,但我的代码很复杂,因此沟通很困难。我完全从不必要的细节中剥离了这个问题,并提出了一个非常简单的示例,如下所示:
模板/base.html:
<html>
<body>
<p>I am base.html</p>
{% block content %}
{% endblock content %}
</body>
</html>
模板/blog.html:
{% extends 'base.html' %}
{% block content %}
<p>I am blog.html</p>
{{ blog_list }}
{% for blog in blog_list %}
{{ blog.title }}
{% endfor %}
{% endblock %}
还有 blog/views.py
from django.views import generic
from .models import Blog
class BlogList(generic.ListView):
queryset = Blog.objects.filter()
template_name = 'blog.html'
# context_object_name = 'blog_list'
class BlogDetail(generic.DetailView):
model = Blog
template_name = 'blog.html'
我期待在那里呈现博客标题列表。我调试了 BlogList 类和查询集值是这样的:
<QuerySet [<Blog: First Page>, <Blog: Intro>]>
所以,查询不为空。我对这个问题感到非常沮丧。有谁知道怎么回事?
编辑:这里是 blog/urls.py:
urlpatterns = [
path('<str:parent>/<slug:slug>/', views.BlogDetail.as_view(), name='blog'),
]
还有项目urls.py:
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('qa.urls')),
path('blog/', include('blog.urls')),
]
【问题讨论】:
-
我看到
BlogDetail也使用blog.html?请将您的网址格式添加到问题中。 -
你试过取消评论
context_object_name吗? -
@Mugoma,是的。没有任何改变。
-
@AbdulAzizBarkat 好的。请查看修改。
-
@multigoodverse 以及指向
BlogList的 url 模式在哪里?...