@Bulbashful

Почему django через раз показывает поле с бд?

Использую Postgresql.
models.py
class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    def __str__(self):
        return self.question_text

class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
    def __str__(self):
        return self.choice_text

index.html
<h3>{{ question.question_text }}</h3>
{% if error_message %} <p><strong>{{ error_message }}</strong></p>{% endif %}
<form action="/vote/" method="post">
    <div class="radio">
{% csrf_token %}
    {% for choice in choice_list %}
   <input type="radio"  name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" />
    <label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br />
{% endfor %}<br />
<input type="submit" class="btn btn-default" value="Проголосовать" />
        </div>
</form>

views.py
def main(request):
    all_info = Info.objects.all()
    question = Question.objects.filter(pk=1)
    choice = Choice.objects.all()
    return render(request,'main.html',{'all_info':all_info,'question':question,'choice_list': choice})

В index.html поле <h3>{{ question.question_text }}</h3> отображается через раз после обновления страницы. Может появится через 2 или 3 раза после обновления. В чём может тут быть дело?
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
fox_12
@fox_12 Куратор тега Django
Расставляю биты, управляю заряженными частицами
Во вьюхе это
question = Question.objects.filter(pk=1)
замените на это
question = Question.objects.get(pk=1)
Когда делаете .filter(..) - вам возвращается список, который вы пытаетесь отобразить в шаблоне. А когда .get(...) - уже конкретный объект.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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