E. *_*and 3 python django django-templates django-views
我正在使用 Python 3 并尝试将 QuerySet 转换为人类可读的文本。我有这样的一行:
top_post = Post.objects.filter(category='1')[:1]
Run Code Online (Sandbox Code Playgroud)
打印出来是这样的:
<QuerySet [<Post: Test Post 1>]>
Run Code Online (Sandbox Code Playgroud)
让我摸不着头脑的是,通过模板显示时,类似的 QuerySet 成功转换:
latest = Post.objects.order_by('-published_date')[:5]
Run Code Online (Sandbox Code Playgroud)
“最新”在模板中使用 for...循环:
{% for latest_posts in latest %}
<h1>{{ latest_posts }}</h1>
Run Code Online (Sandbox Code Playgroud)
而“top_post”仅显示空白:
<h1>{{ top_post }}</h1>
Run Code Online (Sandbox Code Playgroud)
有人看到缺少什么吗?
{{top_post}}是一个查询集(切片查询集也会生成一个查询集),所以它应该显示它。当您循环查询集时,就像您执行 over 一样latest,您将显示其中的对象。
{{top_post.0}}会给你包含的对象top_post。
或者你可以使用
top_post = Post.objects.filter(category='1').first()
Run Code Online (Sandbox Code Playgroud)
直接获取对象。
| 归档时间: |
|
| 查看次数: |
17042 次 |
| 最近记录: |