您好我正在尝试创建一个投资组合页面,其中显示项目详细信息之一下的项目列表。使用通用列表视图我可以显示项目列表。
在我的项目详细信息中,我可以使用DetailView来显示项目。但是我无法在详细信息下面的项目详细信息中显示项目列表。
我扩展了基本模板,因此列表和项目的模板块存在于不同的html文件中。所以我认为问题不在我的模板中。
views.py
class ProjectView(generic.DetailView):
template_name = 'portfolio/project_detail.html'
def get_queryset(self):
return Project.objects.filter(pub_date__lte=timezone.now())
class IndexView(generic.ListView):
template_name = 'portfolio/index.html'
context_object_name = 'project_list'
def get_queryset(self):
return Project.objects.filter(pub_date__lte=timezone.now()).order_by('-pub_date')
urls.py
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),,
url(r'^project/(?P<pk>[0-9]+)/$', views.ProjectView.as_view(), name='project]
答案 0 :(得分:5)
在ProjectView中添加此功能:
def get_context_data(self, **kwargs):
context = super(ProjectView , self).get_context_data(**kwargs)
context['projects'] = Project.objects.filter(pub_date__lte=timezone.now()).order_by('-pub_date')
return context
这样您就可以使用{{projects}}
了解更多here