Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python Django的上下文和词典_Python_Html_Django_Dictionary_Url - Fatal编程技术网

python Django的上下文和词典

python Django的上下文和词典,python,html,django,dictionary,url,Python,Html,Django,Dictionary,Url,因此,我有以下代码: 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, 'le

因此,我有以下代码:

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

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

topics.html:

<ul>
  {% for topic in topics %}
    <li>{{ topic }}</li>
  {% empty %}
    <li>No topics have been added yet.</li>
  {% endfor %}
</ul>
    {主题%中的主题为%s}
  • {{topic}}
  • {%empty%}
  • 尚未添加任何主题
  • {%endfor%}
为什么我需要将存储在topics中的数据传递到topics.html的上下文字典中以循环并显示数据?为什么不循环使用topics变量本身呢?我只是对“上下文”的用法感到困惑


提前感谢您的帮助。

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

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

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