使用 html 文件更改视图变量文件
Change a view varible file with the html file
我正在创建一个在线商店,并在其中添加了用于付款的 Stripe Checkout,一切正常,问题是视图功能仅管理一个价格。它看起来像这样:
def charge(request): # new
if request.method == 'POST':
charge = stripe.Charge.create(
amount=179900,
currency='mxn',
description='Bota Caballero',
source=request.POST['stripeToken']
)
return render(request, 'charge.html')
金额表示价格,在我的 html 主页上我有一个 select 标签,它定义了产品的成本
<select id="modelo" onchange="modelo()" class="select__option" required>
<option>Selecciona Modelo...</option>
<option>99</option>
<option>99</option>
<option>99</option>
</select>
我想根据 select 标签中 select 的内容更改视图文件的数量变量。有什么想法吗?
您通常会通过 form
传递值并使用 request.POST.get('amount', None)
检索它,但是..
您应该从不通过客户可编辑的表格传递定价。
例如,如果您 POST
一个包含您的选择的表格 view
,然后将该值动态设置为您的金额,您就会遇到一些严重的定价问题。
最终用户可以简单地修改 POST
数据并设置他们喜欢的任何值。
我认为最好的解决方案是:
- 将您设置的定价存储在数据库中
- 通过
POST
传递产品标识或类似信息
- 从数据库中检索定价
- 根据数据库响应设置动态定价
我假设您的 select 标签在表单中。您可以简单地检索您的用户编辑的 value/option select 并在您的视图函数中使用它来设置 Stripe 费用。
<select id="modelo" name="modelo_price" onchange="modelo()" class="select__option" required>
<option>Selecciona Modelo...</option>
<option>99</option>
<option>99</option>
<option>99</option>
</select>
def charge(request): # new
if request.method == 'POST':
# Here you retrieve the value submitted by your user
charge_amount = int(request.form.get('modelo_price')) * 100
charge = stripe.Charge.create(
amount=charge_amount,
currency='mxn',
description='Bota Caballero',
source=request.POST['stripeToken']
)
return render(request, 'charge.html')
我正在创建一个在线商店,并在其中添加了用于付款的 Stripe Checkout,一切正常,问题是视图功能仅管理一个价格。它看起来像这样:
def charge(request): # new
if request.method == 'POST':
charge = stripe.Charge.create(
amount=179900,
currency='mxn',
description='Bota Caballero',
source=request.POST['stripeToken']
)
return render(request, 'charge.html')
金额表示价格,在我的 html 主页上我有一个 select 标签,它定义了产品的成本
<select id="modelo" onchange="modelo()" class="select__option" required>
<option>Selecciona Modelo...</option>
<option>99</option>
<option>99</option>
<option>99</option>
</select>
我想根据 select 标签中 select 的内容更改视图文件的数量变量。有什么想法吗?
您通常会通过 form
传递值并使用 request.POST.get('amount', None)
检索它,但是..
您应该从不通过客户可编辑的表格传递定价。
例如,如果您 POST
一个包含您的选择的表格 view
,然后将该值动态设置为您的金额,您就会遇到一些严重的定价问题。
最终用户可以简单地修改 POST
数据并设置他们喜欢的任何值。
我认为最好的解决方案是:
- 将您设置的定价存储在数据库中
- 通过
POST
传递产品标识或类似信息
- 从数据库中检索定价
- 根据数据库响应设置动态定价
我假设您的 select 标签在表单中。您可以简单地检索您的用户编辑的 value/option select 并在您的视图函数中使用它来设置 Stripe 费用。
<select id="modelo" name="modelo_price" onchange="modelo()" class="select__option" required>
<option>Selecciona Modelo...</option>
<option>99</option>
<option>99</option>
<option>99</option>
</select>
def charge(request): # new
if request.method == 'POST':
# Here you retrieve the value submitted by your user
charge_amount = int(request.form.get('modelo_price')) * 100
charge = stripe.Charge.create(
amount=charge_amount,
currency='mxn',
description='Bota Caballero',
source=request.POST['stripeToken']
)
return render(request, 'charge.html')