目标是在重新加载页面时使index.html
获得随机上下文。我不知道该怎么搜索。我尝试将QuerySet转换为json,以便在index.html
的脚本标记中使用它。
models.objects.ordered_by('?')。first()
class IndexView(TemplateView):
template_name = 'index.html'
model = models.Meal
recommended_meal = models.Meal.objects.ordered_by('?').first()
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["recommended_meal"] = self.context
return context
此代码存在于{%block%}~{%endblock%}
<div class="container">
<div class="picture_food">
<a href="%url "> <img src="{{recommended_meal.meal_photo.url}}" class = "img-rounded"></a>
<h1>{{recommended_meal.meal_name}}</h1>
<ul>
<p>{{recommended_meal.restaurant_name}}</p>
<p>{{recommended_meal.price_range}}</p>
<p>{{recommended_meal.satisfaction}}</p>
</ul>
</div>
</div>
当我重新加载index.html
页面时,得到的结果是相同的,但是当服务器重新启动时,它就可以工作了。
答案 0 :(得分:0)
肯定应该是context["recommended_meal"] = self.recommended_meal
吗?
我认为问题在于,在定义类时,您正在使用recommended_meal
将.first()
分解为单个固定对象。我建议你试试
context["recommended_meal"] = models.Meal.objects.ordered_by('?').first()
在get_context_data
方法中。