I'm using Django with Alpine.js. I'm trying to loop over users' images from 1 to 20. For instance, 'user-1.jpg', 'user-2.jpg', and so on and so forth. The following is, of course, not working, but at least it will give you a sense of what I'm trying to achieve:
{% load static %}
<div x-data="libs.testimonialsCircles()">
<template x-for="(item, index) in items" :key="index" hidden>
  <img class="absolute rounded-full z-10 animate-float" :style="item.style" :src="`{% static img/user-${index+1}.jpg %}`" :width="item.size" :height="item.size" :alt="`User ${index+1}`" @mouseenter="active = index; commentOn = true" @mouseleave="commentOn = false" />
</template>
</div>
My JS file
export default function testimonialsCircles() {
  return {
    commentOn: false,
    active: 0,
    // each item is a testimonial avatar with a comment
    items: [
      {
        // user-1.jpg
        img: 'user-1.jpg',
        size: '48', // image width / height
        style: 'max-width: 7.08%;top: 29%;left: 2%;', // image absolute  positioning
        comment:
          'A wonderful serenity has taken possession of my entire soul, like these sweet mornings of spring which I enjoy with my whole heart. ', // comment to be displayed on hover,
        name: 'Elian Whitney',
      },
      {
        // user-2.jpg
        size: '36',
        style: 'max-width:5.31%;top: 60%;left: 2%;',
        comment:
          'Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.',
        name: 'Justice Porter',
      },
      {
        // user-3.jpg
        size: '72',
        style: 'max-width: 10.62%;top: 43%;left: 13%;',
        comment:
          'When, while the lovely valley teems with vapour around me, and the meridian sun strikes the upper surface of the impenetrable foliage of my trees, and but a few stray gleams steal into the inner sanctuary, I throw myself down among the tall grass by the trickling stream.',
        name: 'Leonel Roy',
      },
      {
        // user-4.jpg
        size: '56',
        style: 'max-width: 8.26%;top: 75%;left: 14%;',
        comment:
          'O my friend -- but it is too much for my strength -- I sink under the weight of the splendour.',
        name: 'Daniel Wolf',
      },
      {
        // user-5.jpg
        size: '64',
        style: 'max-width: 9.44%;top: 11%;left: 15%;',
        comment:
          'I am alone, and feel the charm of existence in this spot, which was created for the bliss of souls like mine.',
        name: 'Seamus Miranda',
      },
      {
        // user-6.jpg
        size: '80',
        style: 'max-width: 11.8%;top: 32%;left: 30%;',
        comment:
          'I am so happy, my dear friend, so absorbed in the exquisite sense of mere tranquil existence, that I neglect my talents.',
        name: 'Fiona Schultz',
      },
      {
        // user-7.jpg
        size: '50',
        style: 'max-width: 7.37%;top: 65%;left: 30%;',
        comment:
          'I should be incapable of drawing a single stroke at the present moment.',
        name: 'Monica Evans',
      },
      {
        // user-8.jpg
        size: '36',
        style: 'max-width:5.31%;top: 6%;left: 33%;',
        comment: 'I feel that I never was a greater artist than now.',
        name: 'Jakayla Dunlap',
      },
      {
        // user-9.jpg
        size: '44',
        style: 'max-width: 6.49%;top: 77%;left: 44%;',
        comment:
          'When, while the lovely valley teems with vapour around me, and the meridian sun strikes the upper surface of the impenetrable foliage of my trees.',
        name: 'Mattie Sharp',
      },
      {
        // user-10.jpg
        size: '64',
        style: 'max-width: 9.44%;top: 48%;left: 46%;',
        comment:
          'I should be incapable of drawing a single stroke at the present moment; and yet I feel that I never was a greater artist than now.',
        name: 'Jazmyn Gaines',
      },
      {
        // user-11.jpg
        size: '72',
        style: 'max-width: 10.62%;top: 16%;left: 46%;',
        comment:
          'One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin.',
        name: 'Patrick Christensen',
      },
      {
        // user-12.jpg
        size: '64',
        style: 'max-width: 9.44%;top: 65%;left: 58%;',
        comment:
          'His many legs, pitifully thin compared with the size of the rest of him, waved about helplessly as he looked.',
        name: 'Mike Johnson',
      },
      {
        // user-13.jpg
        size: '80',
        style: 'max-width: 11.8%;top: 32%;left: 62%;',
        comment:
          'His room, a proper human room although a little too small, lay peacefully between its four familiar walls.',
        name: 'Lyla Griffith',
      },
      {
        // user-14.jpg
        size: '48',
        style: 'max-width: 7.08%; top: 6%;left: 63%;',
        comment:
          'Drops of rain could be heard hitting the pane, which made him feel quite sad.',
        name: 'Damien Mclaughlin',
      },
      {
        // user-15.jpg
        size: '24',
        style: 'max-width: 3.54%;top: 93%;left: 65%;',
        comment:
          '" He felt a slight itch up on his belly; pushed himself slowly up on his back towards the headboard so that he could lift his head better.',
        name: 'Perry Mason',
      },
      {
        // user-16.jpg
        size: '36',
        style: 'max-width:5.31%;top: 86%;left: 76%;',
        comment:
          'For instance, whenever I go back to the guest house during the morning to copy out the contract, these gentlemen are always still sitting there eating their breakfasts. I ought to just try that with my boss.',
        name: 'Briana Friedman',
      },
      {
        // user-17.jpg
        size: '44',
        style: 'max-width: 6.49%;top: 59%;left: 76%;',
        comment:
          'I would get kicked out on the spot.But who knows, maybe that would be the best thing for me.',
        name: 'Manuel Kirk',
      },
      {
        // user-18.jpg
        size: '72',
        style: 'max-width: 10.62%;top: 14%;left: 78%;',
        comment:
          'And it is a funny sort of business to be sitting up there at your desk, talking down at your subordinates from up there.',
        name: 'Cedric Reynolds',
      },
      {
        // user-19.jpg
        size: '64',
        style: 'max-width: 9.44%;top: 40%;left: 89%;',
        comment: 'I ought to just try that with my boss.',
        name: 'Gracelyn Wilcox',
      },
      {
        // user-20.jpg
        size: '24',
        style: 'max-width: 3.54%;top: 74%;left: 91%;',
        comment:
          'It was half past six and the hands were quietly moving forwards, it was even later than half past.',
        name: 'Jamir Henson',
      },
    ],
  };
}
I know that I probably should use {{ forloop.counter }} but I'm not sure how exactly should I use it in this type of context.
