Django + 非表单按钮:如何将非表单按钮或 link 连接到 views.py 中 Django 的 python 代码?
Django + non-form buttons: How to connect a non-form button or link to django's python code in views.py?
如何将用 HTML 编写的非表单按钮或 link 连接到 Django 中的 python 代码?具体来说,假设我在 HTML 中有一个使用 href="/some-link" 重定向页面的按钮。例如,当按下此类按钮时,我如何将特定信息保存到 Django 中的会话(即保存按下哪个按钮)?
基本上,我想在 views.py 中做类似于以下的事情:
if request.POST['form-type'] == u"purchase-button":
# save some info before redirecting the page
request.session['some-variable'] = 'the-purchase-button-was-pressed'
return redirect('some-link')
...除非这不是表格,所以我实际上不能那样做。
我是否修改了以下内容 HTML?
<a href="/some-link">Purchase</a>
我对 Django 和一般的 Web 开发有点陌生,所以非常感谢任何帮助。
(基本上,我在下面 link 中提出了确切的问题,但我对答案并不十分满意:)
编辑:
我最终使用了一个空白表单,如下所示,这让我可以参考下面 python 代码中按下的按钮,而无需用户实际填写信息。
在HTML:
<form id="purchase" action="" method="post" name="purchase">
{% csrf_token %}
<input type="hidden" name="form-type" value="purchase" /> <!-- set type -->
<input type="hidden" name="form-id" value="{{ item.id }}" /> <!-- set item ID -->
<button name="purchase" type="submit" id="purchase-submit" data-submit="...Sending">Purchase</button>
</form>
在views.py:
if request.POST['form-type'] == u"purchase":
# this allows me to call the corresponding item by its ID
desired_item = StoreItem.objects.get(id=str(request.POST['form-id']))
# this saves information about the desired item
request.session['item_name'] = str(desired_item.title)
request.session['item_id'] = str(request.POST['form-id'])
request.session['amount'] = str(desired_item.price)
return redirect('shipping')
这允许我从按钮获取信息并在 views.py 中使用它,即使用户没有输入任何其他信息。
我会将其作为带参数的 GET 请求发送,将按钮设置为重定向到“/some-link/?button=PURCHASE”。
因此,在 views.py 中,您将拥有 "request.GET['button']",它的值将是 "PURCHASE"。
如何将用 HTML 编写的非表单按钮或 link 连接到 Django 中的 python 代码?具体来说,假设我在 HTML 中有一个使用 href="/some-link" 重定向页面的按钮。例如,当按下此类按钮时,我如何将特定信息保存到 Django 中的会话(即保存按下哪个按钮)?
基本上,我想在 views.py 中做类似于以下的事情:
if request.POST['form-type'] == u"purchase-button":
# save some info before redirecting the page
request.session['some-variable'] = 'the-purchase-button-was-pressed'
return redirect('some-link')
...除非这不是表格,所以我实际上不能那样做。
我是否修改了以下内容 HTML?
<a href="/some-link">Purchase</a>
我对 Django 和一般的 Web 开发有点陌生,所以非常感谢任何帮助。
(基本上,我在下面 link 中提出了确切的问题,但我对答案并不十分满意:
编辑:
我最终使用了一个空白表单,如下所示,这让我可以参考下面 python 代码中按下的按钮,而无需用户实际填写信息。
在HTML:
<form id="purchase" action="" method="post" name="purchase">
{% csrf_token %}
<input type="hidden" name="form-type" value="purchase" /> <!-- set type -->
<input type="hidden" name="form-id" value="{{ item.id }}" /> <!-- set item ID -->
<button name="purchase" type="submit" id="purchase-submit" data-submit="...Sending">Purchase</button>
</form>
在views.py:
if request.POST['form-type'] == u"purchase":
# this allows me to call the corresponding item by its ID
desired_item = StoreItem.objects.get(id=str(request.POST['form-id']))
# this saves information about the desired item
request.session['item_name'] = str(desired_item.title)
request.session['item_id'] = str(request.POST['form-id'])
request.session['amount'] = str(desired_item.price)
return redirect('shipping')
这允许我从按钮获取信息并在 views.py 中使用它,即使用户没有输入任何其他信息。
我会将其作为带参数的 GET 请求发送,将按钮设置为重定向到“/some-link/?button=PURCHASE”。
因此,在 views.py 中,您将拥有 "request.GET['button']",它的值将是 "PURCHASE"。