python - Django:如何使用单选按钮将附加数据链接到选择?

标签 python django django-forms

在我的项目中,我想创建一个简约的商店页面,用户可以在其中选择要购买的商品。没有用于此目的的数据模型。

简化后,表单如下所示:

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/

相关文章:

django 用户名限制列表与 django-allauth

python - 自定义 django 管理站点 - 行按钮

django - nginx 缓存,staticgenerator 与 memcached

python - 将 <optgroup> 与 form.fields.queryset 一起使用?

django - 为什么我无法在 ModelForm 的 save() 函数中设置 OneToOneField?

python - Pandas 数据帧 : to_dict() poor performance

python - 使用 pandas 或 numpy 填充缺失的时间序列数据

python - 如何通过ctype将字符串缓冲区从python函数传递给C Api

python - 根据集合中的元素复制数据框

django - 在 Django 中使用 Bootstrap 的最佳方式