4つのエントリを印刷しようとしています。公開されていないエントリがない限り、機能します。
「公開された」マネージャーからのオブジェクトのみを含むクエリセットを取得するにはどうすればよいですか?
現在、{% if benefit.status == "p" %} を使用して、公開されていないエントリを出力しませんが、公開されていないことがスライス カウントに影響します。
#views.py:
class PackageListFrontpage(ListView):
context_object_name = "package_frontpage_list"
template_name = "frontpage.html"
queryset = Package.published.all().order_by('order')[:5]
#frontpage.html
{% for package in package_frontpage_list %}
<div>
<h3>{{ package.name }} >></h3>
<ul>
{% for benefit in package.benefit_set.all|slice:":4" %}
{% if benefit.status == "p" %}
<li><a href="{{ benefit.get_absolute_url }}">{{ benefit.name }}</a></li>
{% endif %}
{% empty %}
<li>There are no published benefits in this package</li>
{% endfor %}
</ul>
</div>
{% endfor %}
これを行うより良い方法があると思いますか?