91

我有以下 django 模板(http://IP/admin/start/ 分配给一个名为 view 的假设视图):

{% for source in sources %}
  <tr>
    <td>{{ source }}</td>

    <td>
    <form action="/admin/start/" method="post">
      {% csrf_token %}
      <input type="hidden" name="{{ source.title }}">
      <input type="submit" value="Start" class="btn btn-primary">
    </form>
    </td>

  </tr>
{% endfor %}

sourcesobjects.all()视图中引用的 Django 模型的 。每当单击“开始”提交输入时,我希望“开始”视图{{ source.title}}在返回呈现页面之前使用函数中的数据。如何将发布的信息(在这种情况下,在隐藏输入中)收集到 Python 变量中?

4

3 回答 3

165

阅读您的视图收到的请求对象: https ://docs.djangoproject.com/en/dev/ref/request-response/#httprequest-objects

此外,您的隐藏字段需要一个可靠的名称,然后是一个值:

<input type="hidden" name="title" value="{{ source.title }}">

然后在一个视图中:

request.POST.get("title", "")
于 2012-07-05T00:18:01.650 回答
15

如果您需要在前端做一些事情,您可以响应表单的 onsubmit 事件。如果您只是发布到管理员/开始,您可以通过请求对象访问视图中的发布变量。request.POST 是 post 变量的字典

于 2012-07-05T00:17:03.513 回答
4

对于 django 表单,您可以这样做;

form = UserLoginForm(data=request.POST) #getting the whole data from the user.
user = form.save() #saving the details obtained from the user.
username = user.cleaned_data.get("username") #where "username" in parenthesis is the name of the Charfield (the variale name i.e, username = forms.Charfield(max_length=64))
于 2020-08-12T02:10:22.913 回答