Django:如何自定义表单 ChoiceField 显示?
Django: How to customize a form ChoiceField display?
我正在使用 Django 创建一个极简主义商店。
class CardOrderForm(forms.Form):
order = forms.ChoiceField(
label="",
choices=ORDER_CHOICES,
widget=forms.RadioSelect)
ORDER_CHOICES = (
('CARDS_100_G', 'Pack de 100 cartes génériques'),
('CARDS_200_G', 'Pack de 200 cartes génériques'),
('CARDS_500_G', 'Pack de 500 cartes génériques'))
然后,我创建了一个对象来将价格映射到订单选择:
ORDER_PRICES = {
# Without/With TAXES
'CARDS_100_G': (39, 46.80),
'CARDS_200_G': (69, 82.80),
'CARDS_500_G': (149, 178.80))}
目前,在我的模板中,我有 {{ form.order }}
,它显示了 3 个选项的原始列表,如下所示:
- 一包 100 张通用菜谱
- 一包 200 张普通菜
- 一包 500 张通用菜谱
但是,我找不到自定义此显示以便能够在商品旁边添加价格的方法。我想要这样的结果:
- 一包 100 个普通菜 - 39 欧元
- 一包 200 个普通菜 - 69 欧元
- 一包 500 份普通菜 - 149 欧元
有什么想法吗?谢谢
您可以动态创建一组新的选择。
ORDER_CHOICES_WITH_PRICES = [
(key, "%s - %s€" % (val, ORDER_PRICES[key][0]))
for key, val in ORDER_CHOICES
]
我正在使用 Django 创建一个极简主义商店。
class CardOrderForm(forms.Form):
order = forms.ChoiceField(
label="",
choices=ORDER_CHOICES,
widget=forms.RadioSelect)
ORDER_CHOICES = (
('CARDS_100_G', 'Pack de 100 cartes génériques'),
('CARDS_200_G', 'Pack de 200 cartes génériques'),
('CARDS_500_G', 'Pack de 500 cartes génériques'))
然后,我创建了一个对象来将价格映射到订单选择:
ORDER_PRICES = {
# Without/With TAXES
'CARDS_100_G': (39, 46.80),
'CARDS_200_G': (69, 82.80),
'CARDS_500_G': (149, 178.80))}
目前,在我的模板中,我有 {{ form.order }}
,它显示了 3 个选项的原始列表,如下所示:
- 一包 100 张通用菜谱
- 一包 200 张普通菜
- 一包 500 张通用菜谱
但是,我找不到自定义此显示以便能够在商品旁边添加价格的方法。我想要这样的结果:
- 一包 100 个普通菜 - 39 欧元
- 一包 200 个普通菜 - 69 欧元
- 一包 500 份普通菜 - 149 欧元
有什么想法吗?谢谢
您可以动态创建一组新的选择。
ORDER_CHOICES_WITH_PRICES = [
(key, "%s - %s€" % (val, ORDER_PRICES[key][0]))
for key, val in ORDER_CHOICES
]