【问题标题】:Django, How to pass HTML form values to URL upon form submission?Django,如何在提交表单时将 HTML 表单值传递给 URL?
【发布时间】:2022-01-24 05:10:54
【问题描述】:

项目的url如下,

 path('post/<str:state>/',SearchView.as_view(),name='search-data')

我有一个 HTML 表单,在填写和提交它应该将填写的表单数据传递给 URL。

<form action={% url 'search-data'%} method="get" >
      {% csrf_token %}
     
      <input type="text"  name="fname">  

但它并没有按预期工作。

当表单提交时,它会给出下面的 URL

http://127.0.0.1:8000/%7Burl?csrfmiddlewaretoken=2RZfZ4cxLB...

【问题讨论】:

  • 您没有任何提交按钮,您的网址应该是{% url 'search-data' %} 而不是{url 'search-data'}
  • 添加和编辑但同样的错误,
  • 我在URL中有更多的参数要传递,如果我关注你,我如何获取url参数。视图函数的价值 ?像 follow state = self.kwargs['state']
  • 你好@Almiracontracting 检查我的答案

标签: html django


【解决方案1】:

您不必在 urlpatterns 中传递 &lt;str:state&gt; 参数,只需传递 path('post/search',SearchView.as_view(),name='search-data') 或任何您想要的,但问题是当您传递像这样的参数 post/&lt;str:state&gt;/ 时,您还必须在表单操作中指定它 像这样{% url 'search-data' state %} 最初你没有任何状态所以这就是为什么你必须从你的表单中获取状态名称所以你的代码最终看起来像这样

<form action={% url 'search-data'%} method="get" >
      {% csrf_token %}
     
      <input type="text"  name="fname">  
      <input type="submit" value="search">
</form>

在您看来,您必须从 request.GET 这样的方法中获取它

def search(request):
    state = request.GET.get('fname', None)
    .... do whatever you want 
    return response_or_data

【讨论】:

    猜你喜欢
    • 2021-12-12
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 2020-03-21
    • 2012-09-11
    • 2015-10-22
    • 1970-01-01
    相关资源
    最近更新 更多