我正在尝试以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:]>”
最佳答案
mood
是QuerySet
的Mood_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/