在项目中使用的 Django Alter 命令行过滤器
Django Alter commandline filter to use in project
所以自从我一直在尝试学习 django 以来,有一件事最让我感到困惑,那就是将在 django shell 中工作的东西转换成在 [= 中工作的格式views.py 的 15=]。所以这是文档中的示例:
>>> Entry.objects.all().filter(pub_date__year=2006)
所以我可以使用 shell,到处都有大量示例,但似乎从未涵盖的是如果您想过滤其他年份,如何将其放入您的代码中。有人可以解释这一点或向我指出解释这一点的文档,因为我没有在 django 文档中找到它。
有几种方法可以做到这一点,但出于开始和学习目的,您的视图应该接受年份参数:
def my_view(request, year):
entries = Entry.objects.filter(pub_date__year=year)
context = {
"entries": entries
}
return TemplateResponse(request, 'my_template.html', context)
你说的那一行是用来查询数据库然后过滤东西的。此行主要用于视图或序列化程序,因为您希望将条目传递给模板或作为 JSON 到 API 响应。
在视图中使用它:
def view(request):
entries = Entry.objects.filter(pub_date__year=year)
return render(request, 'index.html', {'entries': entries})
这里上面代码中的对象{'entries': entries}
是context对象
然后,您可以在 Django 模板中使用相同的东西,例如 index.html
{% for entry in entries %}
<li> {{ entry.id }} </li>
{% endfor %}
所以自从我一直在尝试学习 django 以来,有一件事最让我感到困惑,那就是将在 django shell 中工作的东西转换成在 [= 中工作的格式views.py 的 15=]。所以这是文档中的示例:
>>> Entry.objects.all().filter(pub_date__year=2006)
所以我可以使用 shell,到处都有大量示例,但似乎从未涵盖的是如果您想过滤其他年份,如何将其放入您的代码中。有人可以解释这一点或向我指出解释这一点的文档,因为我没有在 django 文档中找到它。
有几种方法可以做到这一点,但出于开始和学习目的,您的视图应该接受年份参数:
def my_view(request, year):
entries = Entry.objects.filter(pub_date__year=year)
context = {
"entries": entries
}
return TemplateResponse(request, 'my_template.html', context)
你说的那一行是用来查询数据库然后过滤东西的。此行主要用于视图或序列化程序,因为您希望将条目传递给模板或作为 JSON 到 API 响应。
在视图中使用它:
def view(request):
entries = Entry.objects.filter(pub_date__year=year)
return render(request, 'index.html', {'entries': entries})
这里上面代码中的对象{'entries': entries}
是context对象
然后,您可以在 Django 模板中使用相同的东西,例如 index.html
{% for entry in entries %}
<li> {{ entry.id }} </li>
{% endfor %}