これはうまくいけば、かなり簡単な質問です。私の最終目標は、列見出しを使って並べ替えることができるテーブルのデータベースエントリを表示できることです。私はサイクルタグのdocumentationを読んだことがあるが、彼らは'row1'
と'row2'
の意味がわからない:Djangoサイクルタグを使用する方法
{% for o in some_list %}
<tr class="{% cycle 'row1' 'row2' %}">
...
</tr>
{% endfor %}
を第二に、どのように私は正しく私のテンプレートにそれを実装するのでしょうか?私は、ソートが可能になりますされ、非常に単純なJS libraryを使用しています:
page.html
{% if Variable %}
<table class="sortable">
<tr>
<th>Title 1</th>
<th>Title 2</th>
<th>Title 3</th>
<th>Title 4</th>
<th>Title 5</th>
</tr>
{% for stuff in Variable %}
<tr class="{% cycle 'stuff' %}">
<td>
<a href="{% url 'detail_page' stuff.id %}">
{{ stuff.Name|capfirst }}</a>
</td>
</tr>
{% endfor %}
</table>
{% else %}
<p>No Results Found</p>
{% endif %}
あなたがそれを必要とする場合、私のmodels.py:
def view(request):
Variable = database.objects.all()
context = {
'Variable': Variable,
}
return render(request, 'app/page.html', context)
EDIT:それ私は正しいコードを全部持っていたようだが、ちょっと不規則にCSSを適用してテーブルをテーブルのように見せないようにしているようだ。サイクルタグは必要なく、forループのみでした。それはまた、別のテーブルの行追加した後に良好に見えた:サイクルタグの
{% for stuff in Variable %}
<tr>
<td>{{ stuff.Name|capfirst }}</td>
<td>{{ stuff.Number|capfirst }}</td>
</tr>
{% endfor %}
ここで 'cycle'タグを使用したくないと思います。 forループが反復するので、多くの値の間で前後に切り替わります。ドキュメント内の「行」は、2つのクラス名の間で交互に切り替わります。つまり、forloopが実行されるたびに(つまり、最初の繰り返しではclassNameとして 'row1'を、2回目は' row2'に、3回目は 'row1'第4の行2など) – rnevius
あなたは絶対に正しいです、私はすべきではありません。私はサイクルタグを取り除き、別の行を作成しました。そして、私のテーブルが「フォーム」を取るのを見ることができました。私はそれを全部持っていたようだが、ちょっと不均一にCSSを適用して奇妙に見える。クラス名が何であるかを簡単に説明できますか?私はサイクルで仮定しています、私は自分の変数(row1とrow2)を作成しています。私は、一般的なプログラミングや自己指導には非常に新しいです。 – Kervvv
これはCSSクラス名(文字列)です。したがって、ドキュメント内のコードは、リストに項目がある間に 'class =" row1 "と' class = "row2" 'の間を行き来するでしょう。 – rnevius