我假设你有相似数量的元素
清单、标题、设置、修订、规格和审查
.请记住,如果元素的数量不同,那么它将至少计算一个。
请在下面查看
zip
为更好的理解树立榜样。
ZIP示例:
inventory = [1, 2, 3, 4]
header = [5, 6, 7, 8]
setup = [9, 10, 11, 12]
revision = [13, 14, 15, 16]
spec = [17, 18, 19, 20]
review = [21, 22, 23, 24, 25, 26]
zippedItems = zip(inventory, header, setup, revision, spec, review)
for inventory, header, setup, revision, spec, review in zippedItems:
print(f'inventory: {inventory} - header: {header} - setup: {setup} - revision: {revision} - spec: {spec} - review: {review}')
输出:
inventory: 1 - header: 5 - setup: 9 - revision: 13 - spec: 17 - review: 21
inventory: 2 - header: 6 - setup: 10 - revision: 14 - spec: 18 - review: 22
inventory: 3 - header: 7 - setup: 11 - revision: 15 - spec: 19 - review: 23
inventory: 4 - header: 8 - setup: 12 - revision: 16 - spec: 20 - review: 24
从输出中可以看到,它没有打印审阅列表的最后一个值,因为这些值不在4的范围内。
您可以保持此代码的原样:
inventory = Inventory.objects.all()
header = Header.objects.all()
setup = Setup.objects.all()
revision = Revisions.objects.all()
spec = SpecificationDetails.objects.all()
review = Reviewers.objects.all()
zippedItems = zip(inventory, header, setup, revision, spec, review)
context = {
'zippedItems': zippedItems
}
return render(request, 'crud/dashboard.html', context)
你对HTML部分有问题。应该是这样的:
{% for inventory, header, setup, revision, spec, review in zippedItems %}
{{ forloop.counter }}
{{ inventory.model_field_name }}
{{ header.model_field_name }}
{{ setup.model_field_name }}
{{ revision.model_field_name }}
{{ spec.model_field_name }}
{{ review.model_field_name }}
{% endfor %}
如果您仍然面临任何问题,请告诉我。:)