Задать вопрос
@zhanka_sun

Почему данные из базы не отображаются на форме?

Здравствуйте! Есть база данных которая состоит из слов, хочу добавить возможность редактировать слова. При редактировании данные из текстовых полей отображаются на форме, но данные из чекбокса исчезают (то есть те что True не отмечаются флажком). И когда сохраняю изменения, то в базе тоже все поля чекбокса запоняются null-ом.
Models:
class test_dic2(models.Model):
    cat_pol = models.BooleanField("pol", default=False, blank=True)
    cat_eco = models.BooleanField("eco", default=False, blank=True)
    cat_med = models.BooleanField("med", default=False, blank=True)
    cat_cul = models.BooleanField("cul", default=False, blank=True)
    cat_sport = models.BooleanField("sport", default=False, blank=True)
    cat_all = models.BooleanField("all", default=False, blank=True)
    date = models.DateTimeField(auto_now=True)


Views:
def dic_edit(request, id):
    try: 
        d_edit = test_dic2.objects.get(id=id)
        if request.method == "POST":
            d_edit.cat_pol = request.POST.get("cat_pol")
            d_edit.cat_eco = request.POST.get("cat_eco")
            d_edit.cat_med = request.POST.get("cat_med")
            d_edit.cat_cul = request.POST.get("cat_cul")
            d_edit.cat_sport = request.POST.get("cat_sport")
            d_edit.cat_all = request.POST.get("cat_all")
            d_edit.save()
            return HttpResponseRedirect("/dictionary.html")
        else: 
            return render(request, 'app/dic_edit.html', {
                "d_edit": d_edit
                })
    except test_dic2.DoesNotExist:
        return HttpResponseNotFound("<h2>Theme not found</h2>")


Html
<tr>
       <td>Категория</td>
      <td> <input  name="cat_pol" type="checkbox" value="{{d_edit.cat_pol}}" /> Политика 
              <input name="cat_eco" type="checkbox" value="{{d_edit.cat_eco}}" /> Экономика 
              <input name="cat_cul" type="checkbox" value="{{d_edit.cat_cul}}" /> Культура 
              <input name="cat_med" type="checkbox" value="{{d_edit.cat_med}}" /> Медицина 
             <input name="cat_sport" type="checkbox" value="{{d_edit.cat_sport}}" /> Спорт 
             <input name="cat_all" type="checkbox" value="{{d_edit.cat_all}}" /> Общее 
</td>
     </tr>
  • Вопрос задан
  • 189 просмотров
Подписаться 2 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
  • Яндекс Практикум
    Мидл Python-разработчик
    6 месяцев
    Далее
Решения вопроса 1
netpastor
@netpastor
Python developer
<input name="cat_all" type="checkbox" {% if d_edit.cat_all %} checked="checked"{% endif%}" />
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы