我使用Python 3并尝试将QuerySet转换为人类可读的文本。我有这样一句话:
top_post = Post.objects.filter(category='1')[:1]
这样打印:
<QuerySet [<Post: Test Post 1>]>
让我刮目的是一个类似的QuerySet在通过模板显示时成功转换:
latest = Post.objects.order_by('-published_date')[:5]
&#34;最新&#34;在模板中使用for ...循环:
{% for latest_posts in latest %}
<h1>{{ latest_posts }}</h1>
而&#34; top_post&#34;只显示空白:
<h1>{{ top_post }}</h1>
任何人都能看到遗失的内容?
答案 0 :(得分:2)
{{top_post}}
是一个查询集(切片查询集也会生成一个查询集),因此它应该显示它。循环遍历查询集时,就像在latest
上一样,显示内部的对象。
{{top_post.0}}
会为您提供top_post
包含的对象。
或者你可以使用
top_post = Post.objects.filter(category='1').first()
直接获取对象。
答案 1 :(得分:1)
您应该在Post模型中实现cb1.setBounds(114, 113, 94, 22);
panel_1.add(cb1);
cb1.addItem("6:00-8:00 AM");
cb1.addItem("8:00-10:00 AM");
cb1.addItem("10:00-11:00 AM");
方法,在其中定义要打印的内容。
此外,如果您希望返回一个对象,则应该__str__
而不是.get
。
答案 2 :(得分:0)
将其转换为列表 定义 return(Post.objects.filter(category ='1')。first)
答案 3 :(得分:0)
要解决此问题,您可以使用嵌套循环(其他循环中的一个循环)