【问题标题】:Request.POST.get not working for me in django, returning default valueRequest.POST.get 在 django 中对我不起作用,返回默认值
【发布时间】:2020-02-14 14:49:05
【问题描述】:

我正在尝试从 django 中的 html 表单获取输入,python 代码如下:

def add(request):
   n = request.POST.get('Username', 'Did not work')
   i = Item(name=n,price=0)
   i.save()
   return render(request,'tarkovdb/test.html')

第二张图是我的html代码:

<html> 
    <head> 
        <meta charset="UTF-8"› 
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384—Vkoo8x4CGs0 OPaXtkKtu6ug5T0eNV6gBiFeWPGFN9Muh0f23Q9Ifjh" crossorigin="anonymous"> 
        <title>Tarkov Database Web App</title> 
    </head> 
    <body> 
        <h1>This is the page to add items</h1> 
            <li><a href="{% url 'tarkovdb:index' s'6}">List of Items in DataBase</a></li> 

<form> 
    <div class="form—group"> 
        <label for&username'> Username: </lable> 
        <input type&text' name='Username' id.'username'> <br><br> 
    </div> 
        <button type="submit" class="btn btn—primary">Submit</button> 
</form> 

【问题讨论】:

  • 永远不要发布您的代码截图,而是将您的代码粘贴到您的问题中并使用stackoverflow的格式化工具对其进行格式化。

标签: python html django


【解决方案1】:

您需要在 HTML form tag 上将 method 属性设置为“post”。像这样:

<form method="post">
    <!-- your fields here -->
</form>

否则您将发送 GET 请求,这是 method 属性的默认值。

PD.:请粘贴您的代码,方便社区为您提供帮助。否则你会被否决。

【讨论】:

  • 对不起,这是我的第一篇文章,当我这样做时,它说有一个 CSRF 错误
  • 是的,您应该在表单中输入{% csrf_token %}。但是,这是另一个问题。
猜你喜欢
  • 2020-08-09
  • 1970-01-01
  • 1970-01-01
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
  • 2021-09-23
  • 1970-01-01
  • 2012-04-18
相关资源
最近更新 更多