【问题标题】:context and dictionaries python Django上下文和字典 python Django
【发布时间】:2018-08-06 15:05:37
【问题描述】:

所以我有以下代码:

views.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 文件中有以下代码时

topics.html:

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

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

提前感谢您的帮助。

【问题讨论】:

    标签: python html django dictionary url


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-10-24
      • 2017-05-25
      • 2016-02-26
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      • 2012-03-03
      • 2019-02-01
      • 1970-01-01
      相关资源
      最近更新 更多