Django html 表单:使用get请求获取数据并传递给另一个视图
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']
.
在该函数中获取数据
我在 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']
.