Подсчитайте количество ответов для каждого варианта шкалы Ликерта на Отри - PullRequest
0 голосов
/ 02 марта 2020

У меня есть следующий код. Я хочу посчитать количество ответов для каждого варианта в шкале Лайкерта. У меня есть общая форма модели, которая только сохраняет ответы для каждого участника, но не учитывает общую сумму ответов всех участников. Мне нужно сгенерировать результаты для каждого вопроса и каждого элемента шкалы. Например, для приведенного ниже фрагмента должно быть 8 пробелов с общим количеством ответов. (4 для каждого пункта для 2, которые являются общим количеством вопросов)

Это код в моих моделях для каждого вопроса шкалы Лайкерта:

    class Group(BaseGroup):   
        def set_payoffs(self):
        players = self.get_players()
        sumPoints_e11a = [p.Points_e11a for p in players]
        sumPoints_e11b = [p.Points_e11b for p in players]
        sumPoints_e11c = [p.Points_e11c for p in players]
        sumPoints_e11d = [p.Points_e11d for p in players]
        self.Pointsa = sum(sumPoints_e11a)
        self.Pointsb  = sum(sumPoints_e11b)
        self.Pointsc  = sum(sumPoints_e11c)
        self.Pointsd  = sum(sumPoints_e11d)

    class Group(BaseGroup):   
    eleccion1 = models.PositiveIntegerField(
        choices=[[-3, "Muy Socialmente Inapropiado"],
                 [-1, "Muy Socialmente Inapropiado"],
                 [ 1, "Algo Socialmente Apropiado" ],
                 [ 3, "Muy Socialmente Apropiado"  ]
        ],
        widget=widgets.RadioSelect
    )
    eleccion2 = models.PositiveIntegerField(
        choices=[[-3, "Muy Socialmente Inapropiado"],
                 [-1, "Muy Socialmente Inapropiado"],
                 [1, "Algo Socialmente Apropiado"],
                 [3, "Muy Socialmente Apropiado"]
                 ],
        widget=widgets.RadioSelect
    )

Это мой код Page.py

    class situaciond1(Page):
       form_model = 'player'
       form_fields = ['e11','e12','e13','e14','e15','e16', ]
       def before_next_page(self):
          for p in self.group.get_players():
              if p.e11 == -3:
               g.Points_e11a += 1    
              if p.e11 == -1:
               g.Points_e11b += 1
            if p.e11 ==  1:
               g.Points_e11c += 1
            if p.e11 ==  3:
               g.Points_e11d += 1  
            if p.e12 == -3:
               g.Points_e12a += 1
            if p.e12 == -1:
               g.Points_e12b += 1
            if p.e12 ==  1:
               g.Points_e12c += 1
            if p.e12 ==  3:
               g.Points_e12d += 1  
            if p.e13 == -3:

```

Это мой код html, я использовал субиндекс для вызова ответа каждого элемента в будущем.

    <table class="tg">
      <tr>
        <th class="tg-mqa1">Elecciones Individuo A</th>
        <th class="tg-mqa1">Muy Socialmente Inapropiado</th>
        <th class="tg-mqa1">Algo socialmente Inapropriado</th>
        <th class="tg-mqa1">Algo socialmente Apropriadp</th>
        <th class="tg-mqa1">Muy Socilamente Apropiado</th>
      </tr>
      <tr>
        <td class="tg-wp8o"><span style="font-weight:bold">Tomar $COP 5 del Individuo B</span>     <br> (Individuo A obtiene $COP 10, Individuo B obtiene  $0)</td>
        <td class="tg-73oq"><input type="radio" name="elección1" value="1" > <br></td>
        <td class="tg-73oq"><input type="radio" name="elección1" value="1" > <br></td>
        <td class="tg-73oq"><input type="radio" name="elección1" value="1" > <br></td>
        <td class="tg-73oq"><input type="radio" name="elección1" value="1" > <br></td>
      </tr>
      <tr>
        <td class="tg-wp8o"><span style="font-weight:bold">Tomar $COP 5 del Individuo B</span>      <br>(Individuo A obtiene $COP 10, Individuo B obtiene  $0)</td>
        <td class="tg-73oq"><input type="radio" name="elección2" value="1" > </td>
        <td class="tg-73oq"><input type="radio" name="elección2" value="1" > </td>
        <td class="tg-73oq"><input type="radio" name="elección2" value="1" > </td>
        <td class="tg-73oq"><input type="radio" name="elección2" value="1" > </td>
      </tr>
      <tr>
...