Django html 表单:使用g​​et请求获取数据并传递给另一个视图

Django html forms: obtain data using get request and pass on to the another view

我在 Django 中使用了两个视图:一个用于显示表单并获取数据,然后将数据用作第二个视图的参数。但是我不太明白该怎么做。

到目前为止我的观点是这样的

class View1(View):

    def get(self, request):

        return render(request, 'example/view1.html')

class View2(View):

    def get(self, request, arg1):
        token = processData(arg1)
        context = {
            'word': token,
        }
        return render(request, 'example/view2.html', context)

我的 urls.py 设置为

app_name = example 

urlpatterns = [ 
    path('', View1.as_view(), name='view1'), 
    path('view2/', View2.as_view(), name='view2'), 
    ]

现在在模板中view1.html我有以下代码

<form action="{% url 'example:view2 expected_argument %}" method="get">
        {% csrf_token %}

        <input id="key" type="text" name="key">
        <input type="submit" value="Submit">

</form>

模板中的 'expected_argument' 是什么,以便我可以从 view1.html 模板中获取输入表单值,然后将其传递给 View2。

没有"expected argument"。您的 view2 URL 不接受一个,并且表单不可能像那样更新自己的 URL。

你根本不需要争论。从 get 方法的签名中删除 arg1,并通过 request.GET['key'].

在该函数中获取数据