@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>
  • Вопрос задан
  • 187 просмотров
Решения вопроса 1
netpastor
@netpastor
Python developer
<input name="cat_all" type="checkbox" {% if d_edit.cat_all %} checked="checked"{% endif%}" />
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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