Как обработать форму с несколькими чекбоксами с разными значениями и одинаковыми именами в django?

У меня проблема с обработкой формы с несколькими чекбоксами с разными значениями, но одинаковыми именами, используя django. HTML:

        <form name="form1" method="post" id="formToCheck">
            {% csrf_token %}
            <div class="row form-group">
                {% for icon in icons_to_show %}
                    <div class="col-md-{{ number }}">
                        <div class="center">
                            <i class="large material-icons" style="color: darkslategray">{{ icon }}</i>
                            <p>{{ icon }}</p>
                            <label for={{ icon }}>
                                <input type="checkbox" name="display_type" value="{{ icon }}" id={{ icon }}/>
                                <span>Choose</span>
                            </label>
                        </div>
                    </div>
                {% endfor %}
                <button type="submit" class="btn btn-primary blue"
                        style="text-align: center; align-items: center">Submit
                </button>
            </div>
        </form>

models.py

class MemoryResult(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
    created_at = models.DateTimeField(auto_now=True, null=True)
    picked_imges_names = models.CharField(max_length=255, null=True)
    results = models.FloatField(null=True)
    status = models.CharField(max_length=255, null=True)

    def __str__(self):
        return '{}'.format(self.images_names)


@receiver(post_save, sender=User)
def create_memory_results(sender, instance, created, **kwargs):
    if created:
        MemoryResult.objects.create(user=instance)

views.py

class MemoryImagesView(TemplateView):
    template_name = 'accounts/memory.html'
    icon_to_show = []
    def dispatch(self, request, *args, **kwargs):
        previous_images = self.request.user.memoryimage_set.all().last().images_names.strip("[]'").replace("'",
                                                                                                           "").replace(
            " ", "").split(",")
        how_many = 9 - len(previous_images)
        self.icon_to_show = render_icons(how_many) + previous_images
        response = super(MemoryImagesView, self).dispatch(request, *args, **kwargs)
        return response

    def get_context_data(self, **kwargs):
        context = super(MemoryImagesView, self).get_context_data(**kwargs)
        return context

    def get(self, request):

        memory = MemoryResult.objects.filter(user=request.user)
        frontend = {
            'title': 'Memory Results',
            'number_mem': 'abcdefghi',
            'icons_to_show': self.icon_to_show,
            'number': 4,
            'memory': memory
        }
        return render(request, 'accounts/memory.html', frontend)

    def post(self, request):
        picked_icons = []
        print(self.icon_to_show)
        for i in range(9):
            if request._post['display_type'] in self.icon_to_show:
                picked_icons.append(request._post['display_type'])
        print(picked_icons)
        return render(request, 'accounts/home.html')

Я знаю, что здесь не должно быть цикла for, но я пробовал разные подходы с добавлением forloop.counter к имени input, но это не работает так же хорошо. Единственное значение, которое сохраняется - это последнее выбранное значение. Я не хочу использовать форму в forms.py, потому что изображения меняются при обновлении страницы, поэтому я делаю это в моем представлении. Когда я хочу прочитать только значение из формы с пользовательским именем, сохраняется только последнее выбранное значение, и я не знаю, как получить их все. Можете ли вы помочь мне решить эту проблему?

Чтобы различать элементы в HTML, используйте разные идентификаторы: добавить счетчик:

def get(self, request):

        memory = MemoryResult.objects.filter(user=request.user)
        frontend = {
            'title': 'Memory Results',
            'number_mem': 'abcdefghi',
            'icons_to_show': self.icon_to_show,
            'number': 4,
            'counter': self.icon_number #initialize it somewhere probably utilizing how_many (I don't know all of your codeú 
            'memory': memory
        }
        return render(request, 'accounts/memory.html', frontend)

Затем сделайте значок id + счетчик

Вернуться на верх