python - django过滤器选择,模板上的顺序选择,按过滤器中写入的顺序
问题描述
我有一个 Django 过滤器,它有 4 个选项。我想按照我在过滤器中编写它们的顺序在模板上对这些选项进行排序。
过滤器.py:
RarityChoices = {
('common', 'Common'),
('uncommon', 'Uncommon'),
('rare', 'Rare'),
('mythic', 'Mythic')
}
rarity = ChoiceFilter(field_name='rarity', empty_label='Any', choices=sorted(RarityChoices), widget=RadioSelect())
模板.html:
<div>
<label class="mb-1" for="id_type">Rarity:</label>
{{ card_filter.form.rarity}}
</div>
截屏:
如果我将过滤器更改为:
rarity = ChoiceFilter(field_name='rarity', empty_label='Any', choices=RarityChoices, widget=RadioSelect())
过滤器在模板上如下所示:
既不是我想要的顺序,也不是filter.py
文件中列出的顺序。
解决方案
RarityChoices = {
('common', 'Common'),
('uncommon', 'Uncommon'),
('rare', 'Rare'),
('mythic', 'Mythic')
}
是一个集合...集合是无序的...将其更改为列表或元组
RarityChoices = [ # [ is for list
('common', 'Common'),
('uncommon', 'Uncommon'),
('rare', 'Rare'),
('mythic', 'Mythic')
]
推荐阅读
- xml - Xquery TSQL:如何在遍历具有多个 xmlns、xmlns:xsd 和 xmlns:xsi 的父节点时检索元素数据
- sdk - 用于 REST 资源使用的 vSphere 自动化 SDK
- javascript - Chrome 非活动选项卡未执行 setInterval
- ggplot2 - 在不更改图例标题的情况下更改 geom_hline 的线型
- angular - 具有不可预测名称的子文件夹中的 Angular 应用程序
- ios - NSAttributedString 在文本和背景之前和之后有填充
- java - 如何在java中将长度为22的字符串转换为整数
- java - 类的构造函数有问题
- javascript - 在 JS 搜索中删除区分大小写
- c - 使用 c 通过 mqtt 将 sqlite 数据库读取到 mqtt 代理