как обновить, если флажок установлен в true или false - PullRequest
0 голосов
/ 27 сентября 2019

шаблон

  {% for me in student %}
 <input type='checkbox' name="check[0]" value="1" {% if me.Asthma  %} checked="check"  {% endif %} /> Ashtma
 </td></tr><tr valign='top'><td>
<input type='checkbox' name="check[0]" value="1"  {% if me.CongenitalAnomalies  %}checked="check" {% endif %} /> Congenital Anomalies
 </td></tr><tr valign='top'><td>
<input type='checkbox' name="check[0]" value="1" {% if me.ContactLenses  %}checked="check" {% endif %}  /> Contact Lenses
 </td></tr><tr valign='top'><td>
 {% endfor %}

просмотров

  asthma = request.POST.get('check[0]')
  congenitalAnomalies = request.POST.get('check[0]')
  Contact = request.POST.get('check[0]')
  update.Asthma=asthma
  update.CongenitalAnomalies=congenitalAnomalies
  update.ContactLenses = Contact

моделей

  Asthma=models.BooleanField(null=True, blank=True)
  CongenitalAnomalies=models.BooleanField(null=True,blank=True)
  ContactLenses=models.BooleanField(null=True,blank=True)

все работает нормально, если я не проверяю все, но я проверяю одну автоматическую проверку всех, исправьте мой код,

1 Ответ

0 голосов
/ 27 сентября 2019

Используйте уникальные name атрибуты для ваших <checkbox> элементов в шаблоне:

{% for me in student %}
 <input type='checkbox' name="asthma" value="1" {% if me.Asthma  %} checked="check"  {% endif %} /> Ashtma
 </td></tr><tr valign='top'><td>
<input type='checkbox' name="congenital_anomalies" value="1"  {% if me.CongenitalAnomalies  %}checked="check" {% endif %} /> Congenital Anomalies
 </td></tr><tr valign='top'><td>
<input type='checkbox' name="contact-lenses" value="1" {% if me.ContactLenses  %}checked="check" {% endif %}  /> Contact Lenses
 </td></tr><tr valign='top'><td>
 {% endfor %}

Затем вам также придется использовать правильные имена в вашем представлении:

asthma = request.POST.get('asthma')
congenitalAnomalies = request.POST.get('congenital_anomalies')
Contact = request.POST.get('contact-lenses')
update.Asthma=asthma
update.CongenitalAnomalies=congenitalAnomalies
update.ContactLenses = Contact

Обратите внимание, что это будет работать, только если вы обновите только один объект в вашем представлении.Если фрагмент кода с вашей точки зрения на самом деле находится в цикле, вам придется добавить идентификатор объекта к имени.

<input type='checkbox' name="asthma-{me.id}" value="1" {% if me.Asthma  %} checked="check"  {% endif %}

for update in students:
    asthma = request.POST.get(f'asthma-{update.id}')
    ...

При этом Django поставляется с очень мощной обработкой форм , который может сделать вашу жизнь намного проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...