Ros*_*oss 0 python django python-3.x
我有一个 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())
Run Code Online (Sandbox Code Playgroud)
模板.html:
<div>
<label class="mb-1" for="id_type">Rarity:</label>
{{ card_filter.form.rarity}}
</div>
Run Code Online (Sandbox Code Playgroud)
截屏:
如果我将过滤器更改为:
rarity = ChoiceFilter(field_name='rarity', empty_label='Any', choices=RarityChoices, widget=RadioSelect())
Run Code Online (Sandbox Code Playgroud)
过滤器在模板上看起来像这样:
两者都不是我想要的顺序,也不是filter.py文件中列出的顺序。
RarityChoices = {
('common', 'Common'),
('uncommon', 'Uncommon'),
('rare', 'Rare'),
('mythic', 'Mythic')
}
Run Code Online (Sandbox Code Playgroud)
是一个集合...集合是无序的...将其更改为列表或元组
RarityChoices = [ # [ is for list
('common', 'Common'),
('uncommon', 'Uncommon'),
('rare', 'Rare'),
('mythic', 'Mythic')
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
215 次 |
| 最近记录: |