Python 从django模板中的列表中选择特定对象
我和一个formset_facotry一起工作,我在想办法解决问题 我有一个从views.py文件中的queryset返回的用户列表。我还有一个表单列表,这些表单是根据列表查询返回的对象数量创建的。我希望它选择返回的第一个对象,并在要显示的第一个表单之前显示它。然后抓取第二个对象并将其显示在第二个窗体之前,依此类推。。。其基本思想如下: 我想让它做一些类似于这个通用模板的事情:Python 从django模板中的列表中选择特定对象,python,django,django-forms,Python,Django,Django Forms,我和一个formset_facotry一起工作,我在想办法解决问题 我有一个从views.py文件中的queryset返回的用户列表。我还有一个表单列表,这些表单是根据列表查询返回的对象数量创建的。我希望它选择返回的第一个对象,并在要显示的第一个表单之前显示它。然后抓取第二个对象并将其显示在第二个窗体之前,依此类推。。。其基本思想如下: 我想让它做一些类似于这个通用模板的事情: header = 'Add record' + groupName if message: print(mes
header = 'Add record' + groupName
if message:
print(message)
count = 0
for f in form:
expenses[0]
f.as_p
count = count + 1
{% extends "base.html" %}
{% block content %}
<h2>Add expense - {{ currentGroup.name }}</h2>
{% if message %}
<p>{{message}}</p>
{% endif %}
<form action="." method="POST">
{% csrf_token %}
{{ form.management_form }}
{% with count=0 %}
{% for f in form %}
{% for expense in expenses %}
<p>{{ expense.user.username }}</p>
{% endfor %}
{{ f.as_p }}
{% endfor %}
{% endwith %}
<input type="submit" name="submit" value="submit">
</form>
{% endblock %}
我想根据循环中的计数获取特定项目:
以下是我在模板中的代码:
header = 'Add record' + groupName
if message:
print(message)
count = 0
for f in form:
expenses[0]
f.as_p
count = count + 1
{% extends "base.html" %}
{% block content %}
<h2>Add expense - {{ currentGroup.name }}</h2>
{% if message %}
<p>{{message}}</p>
{% endif %}
<form action="." method="POST">
{% csrf_token %}
{{ form.management_form }}
{% with count=0 %}
{% for f in form %}
{% for expense in expenses %}
<p>{{ expense.user.username }}</p>
{% endfor %}
{{ f.as_p }}
{% endfor %}
{% endwith %}
<input type="submit" name="submit" value="submit">
</form>
{% endblock %}
{%extends“base.html”%}
{%block content%}
添加费用-{currentGroup.name}
{%if消息%}
{{message}}
{%endif%}
{%csrf_令牌%}
{{form.management_form}}
{0%,计数为0%}
{f的%形式为%}
{费用百分比中的费用百分比}
{{expense.user.username}
{%endfor%}
{{f.as_p}
{%endfor%}
{%endwith%}
{%endblock%}
有人能帮我找出如何在html模板中的对象集中迭代和指定某个对象吗
{% for expense in expenses %}
{% if forloop.counter == 25 %} # this is the 25th, not 26th item
do stuff
{% endif %}
{% endfor %}
我认为下面的代码将适用于模板循环
{% for f in form %}
{% for expense in expenses %}
{% if forloop.parentloop.counter == forloop.counter %}
<p>{{ expense.user.username }}</p>
{% endif %}
{% endfor %}
{{ f.as_p }}
{% endfor %}
{%f格式为%}
{费用百分比中的费用百分比}
{%if-forloop.parentloop.counter==forloop.counter%}
{{expense.user.username}
{%endif%}
{%endfor%}
{{f.as_p}
{%endfor%}
听起来像是您在寻找的,它将连接两个列表,让您可以一起迭代。您需要在视图中将列表压缩在一起,然后可以在模板中迭代新列表
他认为:
forms_and_users = zip(forms_list, users_list)
# Add forms_and_users to template context
在模板中
{% for form, user in forms_and_users %}
{{ user }}
{{ form }}
{% endfor %}
它工作得很好。你为此付出了那么多。我真的很感激@neerajkumar