【问题标题】:How to filter in HTML using a field from model?如何使用模型中的字段过滤 HTML?
【发布时间】:2022-11-09 15:36:31
【问题描述】:

我想用大学科目的复选框实现一个页面,用户可以选择哪些已经完成,我编写了一个 for 循环,在页面中显示该课程的所有科目,但我想按学期将科目分开div,但在同一页面中,我可以使用自定义模板标签或过滤器来执行此操作吗?

我曾尝试在查询上使用 .filter,但在这种情况下只返回一个指定的学期。

【问题讨论】:

  • 请提供足够的代码,以便其他人可以更好地理解或重现该问题。

标签: python django


【解决方案1】:

regroup 模板标签可以提供帮助。

示例模板代码:

{% regroup subjects by semester as semester_list %}

{% for semester, grouped_subjects in semester_list %}
<div>
    {# your code for semester here #}
    <div>
    {% for subject in grouped_subjects %}
        {# your code for subject here #}
    {% endfor %}
    </div>
</div>
{% endfor %}

阅读更多关于docs

——

编辑:

regroup 依赖于查询集的排序。

将上面代码中的第一行更改为

{% regroup subjects|dictsort:'semester' by semester as semester_list %}

【讨论】:

  • 我认为这可行,但我在定义学期变量时遇到问题,它不在模型课科目中,我该怎么做?
  • Subject 模型班是否有任何与学期相关(或可以转换为)的属性?如果是这样,请进行转换,然后您可以进行regroup
  • Image 我做到了,但似乎没有组织,明白吗?科目名称为葡萄牙语,学期为数字,如3为第三学期
  • 这可能是由查询集的排序引起的,可以通过在视图函数中进行排序或使用dictsort 模板过滤器来解决。我将编辑我的答案以包括这部分。
猜你喜欢
  • 2021-02-10
  • 1970-01-01
  • 1970-01-01
  • 2016-10-11
  • 2015-09-06
  • 1970-01-01
  • 1970-01-01
  • 2017-10-04
  • 2023-03-25
相关资源
最近更新 更多