django - 如何从 url 创建变量?
问题描述
我的 URL 采用如下变量“payment_option”:
path('payment/<payment_option>/', PaymentView.as_view(), name='payment')
我想在 PaymentView 呈现的模板中显示该变量。
问题是“payment_option”不是我模型中的参数(如 pk 或 slug),但他的值来自另一个视图处理的表单。
class CheckoutView(View):
[...]
def post(self, *args, **kwargs):
form = CheckoutForm(self.request.POST or None)
[...]
payment_option = form.cleaned_data.get('payment_option')
if payment_option == 'S':
return redirect('core:payment', payment_option='stripe')
elif payment_option == 'P':
return redirect('core:payment', payment_option='paypal')
希望我的解释尽可能清楚,我是 Django 的新手,因此非常感谢任何提示或建议。
解决方案
您可以从 kwargs 获取 urls 变量。
class CheckoutView(View):
[...]
def post(self, *args, **kwargs):
payment_option = kwargs.get('payment_option',None)
form = CheckoutForm(self.request.POST or None)
[...]
#payment_option = form.cleaned_data.get('payment_option')
if payment_option == 'S':
return redirect('core:payment', payment_option='stripe')
elif payment_option == 'P':
return redirect('core:payment', payment_option='paypal')
推荐阅读
- airflow - 在运行时在 Airflow 运算符中创建和使用连接
- bash - 重击。关联数组迭代(有序且无重复)
- eloquent - 我如何一次清除一个函数/方法,但使用这个多重查询 Laravel
- javascript - 如何从烧瓶服务器下载通过 jquery/ajax 请求的 csv 文件
- python-3.x - 使用 tf.data.Dataset 填充数据
- c# - wtsapi32.dll:WTSEnumerateSessions API 间歇性地将“pCount”设置为 0
- android - 通过 Retrofit 获取 Fragment 中的数据
- android - Flutter 为小于 21 的 SDK 启用 multiDex
- sparql - 如何使用 LINQtoSPARQL 连接我的数据库以编写基于 linq 的服务?
- python - Pandas:合并数据框并仅保留与合并的唯一对关联的最小值