Django使用提交按钮发布文本而不使用输入标签
Posted
技术标签:
【中文标题】Django使用提交按钮发布文本而不使用输入标签【英文标题】:Django post text using submit button without using input tag 【发布时间】: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 ?
但我也想在点击提交按钮时从<img src="/media/ image " >
发布 image 。我怎样才能做到这一点 ?
【问题讨论】:
你为什么要首先发布从后端提供的东西? 【参考方案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')
由于图像已经在您的服务器上,我认为您不希望将其作为文件保存。所以获取文件路径就足够了。
【讨论】:
以上是关于Django使用提交按钮发布文本而不使用输入标签的主要内容,如果未能解决你的问题,请参考以下文章