繁体   English   中英

上下文和字典 python Django

[英]context and dictionaries python Django

所以我有以下代码:

视图.py:

def topics(request):
    """Show all topics"""
    topics = Topic.objects.order_by('date_added')
    context = {'topics': topics}
    return render(request, 'learning_logs/topics.html', context)
        return render(request, 'learning_logs/topic.html', context)

我知道我正在查询数据库并按日期对数据进行排序,然后将该数据存储在主题变量中。 我的第一个问题是,主题变量是否将数据存储为列表? (假设有多个条目)。

如果是这样,当我的 html 文件中有以下代码时

主题.html:

<ul>
  {% for topic in topics %}
    <li>{{ topic }}</li>
  {% empty %}
    <li>No topics have been added yet.</li>
  {% endfor %}
</ul>

为什么我需要将存储在主题中的数据传递到 topic.html 的上下文字典中以循环并显示数据? 为什么不循环遍历主题变量本身? 我只是对“上下文”的使用感到困惑

我在这里先向您的帮助表示感谢。

您正在返回一个 HttpResponse,它不知道要为任何给定的{{var}}放入 html 中,因此在您所说的字典中,如果您在我的上下文中看到任何键,请将其替换为其值. 由于您正在返回一个函数,因此使该函数知道要使用什么的唯一方法是将其作为参数放入其中。

此外, Model.objects.all()不返回列表,而是返回一个惰性查询集对象,您可以在其中执行类似操作

for x in Model.objects.all():
    x.one_of_the_fields

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM