我有一个基于类的ListView,如下所示:
class JobByStateView(ListView):
model = State
template_name = 'jobs/jobs_by_state.html'
context_object_name = 'state_list'
ordering = ['name']
paginate_by = 15
我已将路径添加到urls.py文件,如下所示:
path('jobs/', JobByStateView.as_view(), name='job-by-state'),
这就是我的模板的样子:
<div class="row">
<div class="col-md-4">
<ul class="list-unstyled mb-0">
{% for state in state_list %}
{% if forloop.counter|divisibleby:"5" == False %}
<li>
<a href="#">{{state.name}}</a>
</li>
{% else %}
<li>
<a href="#">{{state.name}}</a>
</li>
</ul>
</div>
<div class="col-md-4">
<ul class="list-unstyled mb-0">
{% endif %}
{% endfor %}
</ul>
</div>
</div>
当我尝试通过url(http://localhost:8000/jobs)访问此模板时,它会按预期工作并在屏幕上显示数据。但是,当我尝试将此模板嵌入另一个模板(如下所示)时,网页上什么也没有显示。
{% include 'jobs/jobs_by_state.html' %}
我想将此模板显示为另一个模板中的小部件。
非常感谢,如果有人可以帮助我解决此问题。
非常感谢您的时间和帮助!
================================================ ========================
另一个页面模板是:
{% extends 'base.html' %}
{% block page_content %}
{% include 'carousel.html' %}
{% for job in job_list %}
<div class="listing-wrapper">
<div class="listing-container border-top border-bottom">
<a href="{{ job.get_absolute_url }}">
<h2 class="heading mt-3 mb-1 mx-2 d-inline-block">{{ job.title}}</h2>
</a>
</div>
</div>
{% endfor %}
{% if is_paginated %}
<ul class="pagination justify-content-center my-4">
{% if page_obj.has_previous %}
<li class="page-item">
<a class="page-link bg-dark text-white" href="?page{{page_obj.previous_page_number}}">← Previous Page</a>
</li>
{% endif %}
{% if page_obj.has_next %}
<li class="page-item">
<a class="page-link bg-dark text-white" href="?page{{page_obj.next_page_number}}">Next Page →</a>
</li>
{% endif %}
</ul>
{% endif %}
{% include 'jobs/jobs_by_state.html' with state_list=state_list %}
{% endblock page_content %}
{% block page_sidebar %}
{% include 'simple_search_widget.html' %}
<!-- Social Sharing Buttons -->
<div class="sharethis-inline-share-buttons mt-4"></div>
<!-- Newsletter Widget -->
{% include 'newsletter_widget.html' %}
{% endblock page_sidebar %}
父模板的视图如下所示:
class JobList(ListView):
model = Job
template_name = "jobs/job_listings.html"
context_object_name = "job_list"
ordering = ['-published_date']
paginate_by = 10
答案 0 :(得分:0)
@Charnel和@ChidG的以下解决方案有效。
@Shahzan,好吧,好吧,您是这样在模板中引用该变量的:{%包括带有state_list = state_list%}的'jobs / jobs_by_state.html'。因此,如果变量不在上下文中,则无法将其传递到包含的模板,因此包含的模板将不会显示任何内容。