Как правильно маневрировать через значения в классе в Python? - PullRequest
2 голосов
/ 10 июня 2019

Я пытаюсь отобразить объект в HTML.Объект представляет собой цифру в диапазоне от 1 до 10 (отныне она называется «настроение») и ранее была записана в models.py.Настроение связано с другим классом, называемым «день», через модели. ForeignKey.

В views.py я вспоминаю «день» и «настроение», которые были ранее записаны, так что HTML-страница может бытьотображается с соответствующей информацией дня и соответствующим значением настроения для этого дня.

В настоящее время, когда я делаю это, вместо отображения цифры от 1 до 10, я получаю это "]> "вместо.

views.py

def day(request, day_id):
    # show all data for the day
    day = Day.objects.get(id=day_id)
    mood = day.mood_set.order_by('mood')
    context = {'day': day, 'mood': mood}
    return render(request, 'mood_collector/day.html', context)
models.py 

class Mood_Morning(models.Model):
    day = models.ForeignKey(
    Day,
    on_delete=models.CASCADE,
    )
    mood = models.FloatField(null=True, blank=True, default=0.0)

    def __str__(self):
        return '%d' % self.mood
<p> Day: {{day}} </p>
<p> Mood: {{mood}}</p>

Я ожидаю, что на выходе будет" Mood: (вставьте цифру 1-10) ", вместо этого я получаю" Mood: ]> "

1 Ответ

0 голосов
/ 10 июня 2019

mood - это QuerySet из Mood_Morning с, а не один.Действительно, для данного Day может быть ноль, один или несколько Mood_Morning s, связанных с этим Day.

. Например, вы можете перебирать настроения, а затем воспроизводить их индивидуально, например:

def day(request, day_id):
    # show all data for the day
    day = Day.objects.get(id=day_id)
    <b>moods</b> = day.mood_set.order_by('mood')
    context = {'day': day, <b>'moods': moods</b>}
    return render(request, 'mood_collector/day.html', context)

Тогда в шаблоне мы можем отобразить это как:

{% <b>for mood in moods</b> %}
    <p> Mood: {{mood}}</p>
{% <b>endfor</b> %}

Если, однако, для данного объекта Day может быть не более одного Mood_Morning объекта, выследует рассмотреть возможность использования OneToOneField [Django-doc] .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...