在Django python

时间:2015-10-27 04:19:22

标签: php python django

我对Python Django有疑问。

这是我的观点

def index(request):
    contacts = Contact.objects.all()
    threeboxs = Threeboxes.objects.all()
    return render(request, 'home/index.html', {'threeboxs': threeboxs, 'contacts': contacts})

我们在PHP中显示的方式

for(k=0; k<3; k++){
some css class, i will add the K value eg:someclass_0
echo threeboxs[k].title;
echo threeboxs[k].description;
}

我可以像这样显示Python代码。

{% for threebox in threeboxs%}     
  <h5>{{ threebox.title }}</h5>
  <p>{{ threebox.description|linebreaks }}</p>                
{% endfor %}

但是这样做我无法用循环更新css类。然后我尝试了这种方式但是没有用。

{% context['loop_times'] = range(0, 3) 
     for n in loop_times: %}
      {{ threebox[n].title }}
{% endfor %}

有人可以给我一个关于我应该怎么做的建议吗?

2 个答案:

答案 0 :(得分:1)

尝试:

{% for iter,threebox in threeboxs.items%} 

如果您需要,这将使您可以访问密钥......或者甚至更好:

forloop.counter

查看此文档:https://docs.djangoproject.com/en/1.8/ref/templates/builtins/#for

你想用css课做什么?

答案 1 :(得分:1)

您在迭代列表fortunately Django has you covered with the cycle templatetag时尝试循环显示某些指定值。

{% for threebox in threeboxs%}     
  <h5 style="{% cycle  'class_1' 'class_2' 'class_3' %}">{{ threebox.title }}</h5>
  <p>{{ threebox.description|linebreaks }}</p>                
{% endfor %}

这会给你:

<h5 style="class_1">Title 1</h5>
<p>Body 1</p>                
<h5 style="class_2">Title 2</h5>
<p>Body 2</p>                
<h5 style="class_3">Title 3</h5>
<p>Body 3</p>                
<h5 style="class_1">Title 4</h5>
<p>Body 4</p>                
<h5 style="class_2">Title 5</h5>
<p>Body 5</p>                

等等......