Использование object.filter() в chart.js

У меня есть диаграмма, которая показывает имя кандидата и соответствующие голоса

  $(document).ready(function(){
    const ctx = document.getElementById('myChart').getContext('2d');
    Object.filter = (object,objectItems) => Object.fromEntries(Object.entries(object).filter(objectItems));
    const President = Object.filter(ctx, ([position, votes])=> position == 'President');
    const myChart = new Chart(ctx, {
        type: 'bar',
        data: {
                labels: [{% for i in qs %} '{{i.last_name}} {{i.position}} {{i.partylist}}', {%endif%} {% endfor %}],
                datasets: [{
                    label: '# of Votes',
                    data: [{% for i in qs %} {{i.votes}}, {% endfor %} ],
                    backgroundColor: [
                    {% for i in qs %} 'rgba(54, 162, 235, 0.2)', {% endfor %}
                    ],
                    borderColor: [
                    {% for i in qs %} 'rgba(54, 162, 235, 0.2)', {% endfor %}
                    ],
                    borderWidth: 1
                }]
            
        },
        options: {
            scales: {
                y: {
                    beginAtZero: true
                }
            }
        }
    });
  
  });
</script>

а views.py для него выглядит следующим образом

class PollsView(TemplateView):
    template_name = "test.html"

    def get_context_data(self, **kwargs):
        
        context = super().get_context_data(**kwargs)
        context ['qs'] = Candidate.objects.all()
        return context

Теперь я хочу отфильтровать всех кандидатов по их должности, т.е. кандидат1 - президент и т.д. и показать их в диаграммах.

Я пробовал использовать objects.filter(position = 'President') в представлении, но я получил ValueError поле 'id' ожидалось число, но получил 'President', и попробовал это решение, которое я нашел в интернете https://splunktool.com/how-to-filter-django-x-chartjs-charts-uncaught-typeerror но получил ту же ошибку, другой вариант - использовать if i.position == 'President', но он возвращает только первый голос, а не цикл.

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