Почему Django не берет целое число в БД и не отображает его в шаблоне HTML?

У меня есть следующий базовый код, который предназначен для получения числа X, добавления простого значения "+1" в качестве доказательства концепции, а затем сохранения этого числа обратно в базу данных. Кроме того, мне нужен шаблон jinja на основе Django, чтобы вытащить это число и отобразить его на веб-сайте.

Мой вопрос: почему номер не отображается? Я получаю только пробел, где число должно быть отображено, и если я удаляю фильтр [:1], div генерируется 3x; это говорит мне, что проблема может быть где-то в этой строке, но я в растерянности. Код является:

/views.py:

    from django.shortcuts import render
    from django.http import HttpResponse
    from django.template import Context, loader
    from home.models import DeathNum

    def index(request):
        counter = DeathNum.objects.get(pk=1)
        fj = counter.deaths
        t = loader.get_template('home/basenum.html')
        c = {'number_post': str(fj)[:1]}
        return HttpResponse(t.render(c))


    def increment(request):
        counter1 = DeathNum.objects.get(pk=1)
        counter1.deaths += 1
        counter1.save()
        t = loader.get_template('home/basenum.html')
        c = {'number_post': str(counter1)[:1]}
        return HttpResponse(t.render(c))

/models.py:

 from django.db import models

 class DeathNum(models.Model):

     deaths = models.IntegerField()


     def __str__(self):
         return "{0}/{1}\n".format(self.id, self.deaths)

/basenum.html:

      {% extends "home/index.html" %}
      {% block content %}
         <br />
          <div class="banner">
           <div class="bannerNum">
            <p div class="numberOf">
             Number of deaths in Blank since 1999:
        </p>
                {% for post in number_post %}
          <br /><br /><br />
          <p class="death1">
            {{ post.deaths }}
          </p>
                {% endfor %}
         </div>
        </div> 
        {% endblock %}

1 ответ

Решение

Ответь на твой вопрос.

number_post это строка Зачем цикл отображать str? Удалите цикл for из вашего шаблона и просто добавьте это...

{{ number_post }}

Или же

Еще одно решение вашего вопроса

Я верю, что вы хотите показать все смерти. Пожалуйста, рассмотрите ниже подход?

death_nums = DeathNum.objects.all()
return render(request, 'deaths.html', {'death_nums': death_nums})

И в HTML

{% for death_num in death_nums %}
    {{ death_num.deaths }}
{% endfor %}
Другие вопросы по тегам