仅在变量中添加某些字段 - Python 函数 - Django - 视图
Only Add Certain Fields in Variable - Python Function - Django - Views
我有带 CharFields 'flname1'、'date1' 和 'time1' 的 Django 模型。 我的目标 在我的 HTML 中是有一个 {{ forloop }} 只运行 'date1' 和 'time1' 字段并显示所有字段. 我的问题 是,在我的视图文件中,我找不到创建 python 变量的方法,该变量仅包含一个模型的三个字段中的两个。即尝试了很多,但我试图避免的是...
posts = DocPost.objects.all()
这会将所有三个字段放入一个变量中,并将它们显示在我不想要的 for 循环中。我还尝试了很多使用过滤器的工作,并尝试了互联网上其他人成功但对我不起作用的东西,比如...
posts = DocPost.objects.filter('flname1').only('date1', 'time1')
这没有用,也没有将 date1 和 time1 分开并将它们打包到一个我可以循环访问的变量中。在这一点上,我尝试了比这更多的方法,但没有成功。感谢您的帮助。
您可以通过两种方式仅获取查询中的特定字段并对其进行迭代。两者的模板几乎相同
首先,您可以使用only() to generate a queryset where each object only has certain fields populated and all the rest are deferred
# View
context['posts'] = DocPost.objects.only('date1', 'time1')
# Template
{% for post in posts %}
{{ post.date1 }}
{{ post.time1 }}
{% endfor %}
其次,您可以使用values()生成仅包含指定字段的字典查询集
# View
context['posts'] = DocPost.objects.values('date1', 'time1')
# Template
{% for post in posts %}
{{ post.date1 }}
{{ post.time1 }}
{% endfor %}
我有带 CharFields 'flname1'、'date1' 和 'time1' 的 Django 模型。 我的目标 在我的 HTML 中是有一个 {{ forloop }} 只运行 'date1' 和 'time1' 字段并显示所有字段. 我的问题 是,在我的视图文件中,我找不到创建 python 变量的方法,该变量仅包含一个模型的三个字段中的两个。即尝试了很多,但我试图避免的是...
posts = DocPost.objects.all()
这会将所有三个字段放入一个变量中,并将它们显示在我不想要的 for 循环中。我还尝试了很多使用过滤器的工作,并尝试了互联网上其他人成功但对我不起作用的东西,比如...
posts = DocPost.objects.filter('flname1').only('date1', 'time1')
这没有用,也没有将 date1 和 time1 分开并将它们打包到一个我可以循环访问的变量中。在这一点上,我尝试了比这更多的方法,但没有成功。感谢您的帮助。
您可以通过两种方式仅获取查询中的特定字段并对其进行迭代。两者的模板几乎相同
首先,您可以使用only() to generate a queryset where each object only has certain fields populated and all the rest are deferred
# View
context['posts'] = DocPost.objects.only('date1', 'time1')
# Template
{% for post in posts %}
{{ post.date1 }}
{{ post.time1 }}
{% endfor %}
其次,您可以使用values()生成仅包含指定字段的字典查询集
# View
context['posts'] = DocPost.objects.values('date1', 'time1')
# Template
{% for post in posts %}
{{ post.date1 }}
{{ post.time1 }}
{% endfor %}