如何在一个页面中分离无线电选择组?他们发生冲突

时间:2018-06-02 19:50:00

标签: python django

我正在做一种调查(评估)。

我的网络在一个页面中有多个广播选择(字段)。

例如,我在一个页面中有3个问题,每个问题有5个无线电选择。如果我在No.1问题中选择选择3然后在2号问题中选择4,则No.1选择消失(选择3)。我想这是No.1和No.2之间的冲突。

所以,我可以为所有问题选择一个选项。 first selection

----------------------------------------------- -----------

second selection(first one disappeared)

我猜错了,因为我在同一页面中显示了很多表单(不是一个表单)。但我不知道为什么。 帮帮我...

我的守则正在追随(没关系韩国人)

HTML

{% extends 'base.html' %}
{% load staticfiles %}
{% block content %}

<form method="post" id='evaluate_answer_form' novalidate>
  {% csrf_token %}
    {% for q, form in questions %} # q:question object / form:answer form
      <p>
        {# Include the hidden fields #}
        {% for hidden in form.hidden_fields %}
        {{ hidden }}
        {% endfor %}
        {# Include the visible fields #}
        {% for field in form.visible_fields %}
          <div class="fieldWrapper">
              {{ field.errors }}
              {{ q.ask }} {{ field }}
          </div>
        {% endfor %}
      </p>

    {% endfor %}
  <button type="submit">Submit</button>
</form>



{% endblock %}

forms.py

class AnswerForm(forms.ModelForm):
AGREEMENT_CHOICES = (
    ('5', '매우 동의함'),
    ('4', '동의함'),
    ('3', '보통임'),
    ('2', '동의하지 않음'),
    ('1', '매우 동의하지 않음')
)
   class Meta:
       model = Answer
       fields = ['text']

   def __init__(self, *args, **kwargs):
       # input = question & course
       question = kwargs.pop('question')
       course = kwargs.pop('course')

       self.question = question
       super(AnswerForm, self).__init__(*args, **kwargs)
       if question.ans_type == 'a':
           self.fields['text'] = forms.ChoiceField(
               choices = AGREEMENT_CHOICES, widget=forms.RadioSelect()
           )

       elif question.ans_type == 's':
           self.fields['text'] = forms.CharField()

models.py

class Question(models.Model):
       ask = models.CharField('질문 내용', max_length=300)
       ans_type = models.CharField('대답 유형', max_length=10, default='s')
       response = models.ForeignKey(Response, on_delete=models.SET_NULL, null=True)

class Answer(models.Model):
    text = models.CharField('대답', max_length=500, blank=True, null=True)
    choice = models.IntegerField('점수', blank=True, null=True)
    answered = models.BooleanField('대답 여부', default = False)

    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    response = models.ForeignKey(Response, on_delete=models.CASCADE, null=True)

views.py

(...)
c = course # Course object
questions=[]
for q_set in c.questionset_set.all(): #Course <- Questionset <- Question
    for q in q_set.question_set.all():
        answer = Answer()
        answer.question = q
        answer.response = response
        answer.save()
        questions.append([q, AnswerForm(instance=answer, question=q, course=c)])
        questions.sort(key=lambda x:x[0].id) #sort

return render(request, 'tas/evaluate_answer.html', {'questions': questions})

0 个答案:

没有答案