我正在尝试使用变量访问字典中的值,所有这些都在遵循 Django 模板语言的 HTML 文件中。Django 的模板语言不允许您使用变量作为键来访问字典,因此我决定使用 Django 过滤器来执行此操作。但是,我收到“无效过滤器”错误,我不知道为什么。
我的 html 文件
<table class="table">
<tbody>
<tr>
<th scope="row">Username</th>
<th scope="row">Full Name</th>
<th scope="row">Points</th>
{% for subject in subjects %}
<th scope="row">{{ subject }}</th>
{% endfor %}
</tr>
{% for user in users %}
<tr>
<td>
<a href="{% url 'profile' username=user.username %}">{{ user.username }}</a>
</td>
<td>{{ user.first_name }} {{ user.last_name }}</td>
<td>{{ user.profile.points.total }}</td>
{% for subject in subjects %}
<td>{{ user.profile.points|keyvalue:subject }}</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
Run Code Online (Sandbox Code Playgroud)
我的过滤器.py …
所以我有一个名为Puzzle的模型,其中包含标题,问题和主题.我希望能够通过输入字符串来搜索谜题.我的搜索栏还包含三个复选框: - 标题 - 问题 - 主题
我想以某种方式能够查询我的数据库,看看勾选的字段是否包含搜索文本.例如,如果标题和问题被勾选,我会查询拼图的标题是否包含该字符串或其问题是否包含字符串.有没有办法在Django中查询?
我知道,如果我只想查看其中一个字段,例如标题,我可以这样做:
Puzzle.objects.filter(title__contains=search_text)
Run Code Online (Sandbox Code Playgroud)
但我希望能够动态查询已勾选的字段.
目前,我的视图包含三个布尔值:标题,问题和主题.布尔值为True,如果勾选则为false,如果未勾选,则为false.
如何操作这三个布尔值以及Django查询以便能够动态查询我的数据库?
谢谢