我正在尝试以html显示对象。
该对象是一个介于1到10之间的数字(此后称为“ mood”),并且先前已记录在models.py中。情绪通过model.ForeignKey连接到另一个称为“ day”的类。

在views.py中,我记得之前已记录的“ day”和“ mood”,因此可以用当天的适当日期信息和适当的情绪值来呈现html页面。

当前,当我这样做时,我得到的不是]>。

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:]>”

最佳答案

moodQuerySetMood_Morning,而不是一个。实际上,对于给定的Day,可以有零个,一个或多个与该Mood_Morning相关的Day

例如,您可以遍历情绪,然后分别渲染它们,例如:

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


然后,在模板中,我们可以将其呈现为:

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


但是,如果给定的Day对象最多可以有一个Mood_Morning对象,则应考虑使用OneToOneField [Django-doc]

关于python - 如何在python中的类中正确地操纵值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56518517/

10-12 22:15