Задать вопрос
@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 комментарий
Помогут разобраться в теме Все курсы
  • ProductStar
    Django + Python разработка
    2 месяца
    Далее
  • Skillbox
    Python-фреймворк Django
    3 месяца
    Далее
  • Бруноям
    Python-фреймворк Django
    3 месяца
    Далее
Решения вопроса 1
netpastor
@netpastor
Python developer
<input name="cat_all" type="checkbox" {% if d_edit.cat_all %} checked="checked"{% endif%}" />
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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