在我的项目中,我想创建一个简约的商店页面,用户可以在其中选择要购买的商品。没有用于此目的的数据模型。
简化后,表单如下所示:
class CardOrderForm(forms.Form):
order = forms.ChoiceField(
choices=ORDER_CHOICES,
widget=forms.RadioSelect)
在另一个文件中:
ORDER_CHOICES = (
('CARDS_100', 'Pack de 100 cartes'),
('CARDS_200', 'Pack de 200 cartes'),
('CARDS_500', 'Pack de 500 cartes'),
之后,在views.py中,我会根据选择向用户收费。
但是,您如何定义与选择相关联的价格? 我不想写这样难看的东西:
if form.order == 'CARDS_100':
# charge 39€
elif form.order == 'CARDS_200':
# charge 69€
... etc
您有更好的选择吗?非常感谢。
最佳答案
您可以创建一个ORDER_CHOICES_TO_PRICES
映射,它将为您提供特定订单选择的价格。
ORDER_CHOICES_TO_PRICES = {
'CARDS_100': 39,
'CARDS_200': 69,
...
}
然后在您的 View 中,您可以使用此映射来获取价格。
price = ORDER_CHOICES_TO_PRICES[form.cleaned_data['order']] # will give you the price for a particular order
关于python - Django:如何使用单选按钮将附加数据链接到选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33200369/