【问题标题】:Django post text using submit button without using input tagDjango使用提交按钮发布文本而不使用输入标签
【发布时间】:2018-09-16 08:29:50
【问题描述】:

我有一个 django 模板,其中有一个我从用户那里获取输入的表单。

template.html

{% extends 'header.html' %}
{% load staticfiles %}

{% block content %}

    <h3> Questtion</h3>


    <img src="/media/{{ image }}" >
    <br> <br>
    <h3> Responses </h3>
<form  method="post" action="/tools/submit">
    {% csrf_token  %}
    <input type="text" name="first_response" placeholder="First Response"  size="40" required>
    <input type="text" name="second_response" placeholder="Second Response"  size="40" required> 
    <input type="text" name="third_response" placeholder="Third Response"  size="40" required> 
    <input type="text" name="fourth_response" placeholder="Fourth Response"  size="40" required>
    <input type="text" name="fifth_response" placeholder="Fifth Response"  size="40" required>

    <button type="submit" >Submit</button>
</form>   

{% endblock %}

输入的文本很容易通过views.py

中的以下方法得到
def post_form(request):
    if request.method == 'POST':
        first_response = request.POST.get('first_response')
        second_response = request.POST.get('second_response')
        third_response = request.POST.get('third_response')
        fourth_response = request.POST.get('fourth_response')
        fifth_response = request.POST.get('fifth_response')
        image_name = # HOW TO GET {{ image }} name here ?

但我也想在点击提交按钮时从&lt;img src="/media/{{ image }}" &gt; 发布{{ image }}。我怎样才能做到这一点 ?

【问题讨论】:

  • 你为什么要首先发布从后端提供的东西?

标签: javascript html django django-templates jinja2


【解决方案1】:

在html中

<form  method="post" action="/tools/submit" enctype="multipart/form-data">

<input type="file" name="image" placeholder="Image Response"  size="40" required>

在视图中

fifth_response = request.FILES.get('image')

【讨论】:

    【解决方案2】:

    在您的 html 模板表单中添加这一行

    <input type="hidden" name="question" value="/media/{{ image }}">
    

    在 Django 视图中只需获取图像路径

    fifth_response = request.POST.get('question')
    

    由于图像已经在您的服务器上,我认为您不希望将其作为文件保存。所以获取文件路径就足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-30
      • 1970-01-01
      • 1970-01-01
      • 2021-06-08
      • 2021-10-07
      • 1970-01-01
      • 2023-01-09
      • 1970-01-01
      相关资源
      最近更新 更多