Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何从url创建变量?_Django_Django Templates_Django Views - Fatal编程技术网

Django 如何从url创建变量?

Django 如何从url创建变量?,django,django-templates,django-views,Django,Django Templates,Django Views,我的URL采用一个变量“payment\u option”,如下所示: path('payment/',PaymentView.as_view(),name='payment') 我想在PaymentView呈现的模板中显示该变量 问题是“payment_option”在我的模型中不是参数(比如pk或slug),但他的值是从另一个视图处理的表单中获得的 类签出视图(视图): [...] def post(自我,*args,**kwargs): 表单=检查表单(self.request.POST

我的URL采用一个变量“payment\u option”,如下所示:

path('payment/',PaymentView.as_view(),name='payment')
我想在PaymentView呈现的模板中显示该变量

问题是“payment_option”在我的模型中不是参数(比如pk或slug),但他的值是从另一个视图处理的表单中获得的

类签出视图(视图):
[...]
def post(自我,*args,**kwargs):
表单=检查表单(self.request.POST或无)
[...]
payment\u option=form.cleaned\u data.get('payment\u option'))
如果付款选项='S':
返回重定向('core:payment',payment\u option='stripe')
elif付款选项==“P”:
返回重定向('core:payment',payment\u option='paypal')

希望我的解释尽可能清楚,我是Django的新手,因此非常感谢任何提示或建议。

您可以从kwargs获得URL变量

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')

您可以使用
self.kwargs['payment\u option']
获取参数。如果表单需要,您必须手动将其发送到表单