我正在尝试完成这段用PHP和Laravel编写的代码,但使用的是Django:
@php
$a = 0;
@endphp
@foreach($images as $image)
@if($a % 2 == 0)
<li class="grid-item"> <!--<li class="grid-item2">-->
<img class="img img-fluid"src="{{ route('image.file',['filename' => $image->image_path]) }}" />
</li>
@php
$a = $a+1;
@endphp
@else
<li class="grid-item grid-item--width2"> <!--<li class="grid-item2 grid-item--width2">-->
<img class="img img-fluid"src="{{ route('image.file',['filename' => $image->image_path]) }}" />
</li>
@php
$a = $a+1;
@endphp
@endif
@endforeach对于任何foreach循环,它只需使用配对数字输入if或not条件即可。这是我在Django上的资料:
{% for photography in photographies.all%}
{% if number|divisibleby:2 == True %}
<li class="grid-item"> <!--<li class="grid-item2">-->
<img class="img img-fluid" src="{{ photography.image.url }}" />
</li>
{{number|add:1}}
{% else %}
<li class="grid-item grid-item--width2"> <!--<li class="grid-item2 grid-item--width2">-->
<img class="img img-fluid" src="{{ photography.image.url }}" />
</li>
{{number|add:1}}
{% endif %}
{% endfor %}views.py:
def home(request): #añadido
number = 0
photographies = Photography.objects #añadido
return render(request, 'photographies/home.html', {
'photographies':photographies,
'number':number
}) #añadido我现在遇到的最大问题是,由于某些原因,变量number在任何for循环中都会重置为cero,所以总是进入if条件。
发布于 2020-05-09 23:05:19
在模板中,通过使用add template过滤器,您不会更改上下文变量number
相反,您可能希望使用内置的计数器{{ forloop.counter0 }}
{% for photography in photographies.all%}
{% if forloop.counter0|divisibleby:2 == True %}
<li class="grid-item"> <!--<li class="grid-item2">-->
<img class="img img-fluid" src="{{ photography.image.url }}" />
</li>
{% else %}
<li class="grid-item grid-item--width2"> <!--<li class="grid-item2 grid-item--width2">-->
<img class="img img-fluid" src="{{ photography.image.url }}" />
</li>
{% endif %}
{% endfor %}https://stackoverflow.com/questions/61698462
复制相似问题