首页 > 解决方案 > 在 HTML 中嵌套 ForLoop - Python

问题描述

我的 HTML 文件中有 2 个{% for %}循环,其中一个是嵌套的,我似乎无法让它们工作。

一种是只显示登录我网站的用户的数据,
{% for item in user.Building.all %}另一种是我在同一页面上设置的过滤功能,{% for post in item.filter.qs %}

HTML的小例子:

{% if user.Building.all %}
    {% for post in user.Building.all %}
        <tr>
        {{ post.time }}
        {{ post.date }}
        </tr>
    {% endfor %}
{% endfor %}

用于创建数据的 Django 视图示例(特定于用户) - Python:

def adddata_building_mobile(response):
    if response.method == 'POST':
        form = SheetForm_Building(response.POST, response.FILES)
        if form.is_valid():
            instance = form.save(commit=False)
            instance.user = response.user
            instance.save()
            response.user.Building.add(instance)
            return redirect('sheets')
    else:
        form = SheetForm_Building()

    return render(response, 'sheets/add_data/mobile/add_data_building.html', {'form': form})

用于列出数据的 Django 视图示例(特定于过滤器) - Python:

class ListData_Building(ListView):
    model = Sheet_Building
    fields = '__all__'
    template_name = 'sheets/individual/list_data_building.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['filter'] = Sheet_Building_Filter(self.request.GET, queryset=self.get_queryset())
        return context

问题是我只能让过滤器在它根据我选择过滤的内容过滤数据的地方工作,或者它只显示该用户登录的数据。

我需要它来做这两件事。

我用 HTML 中的两个循环尝试了一堆不同的配置,for但上面的那个似乎是最有意义的。我什至尝试遍历视图中的 for 循环之一,然后在 HTML 中循环,但它仍然不起作用。任何帮助深表感谢!

标签: pythonhtmldjangofor-loopfilter

解决方案


推荐阅读