python - 在 Django 中传递数据表单
问题描述
我在如何根据我的 html 中的选定行按钮将数据传递html
到其中时遇到问题,views.py
我也想通过POST
。正如您所见,传递数据的触发器是通过Open
我一直在使用的按钮href
。是有什么技巧或想法如何使用表单等传递数据?如果有人能弄清楚我在哪里做错了,那就太好了。非常感谢你
这与此问题链接类似
示例.HTML
<div class="row">
{% csrf_token %}
{% for folder in folder_list %}
Folder title: <span id="titles" name="titles" >{{folder.title}}</span></p>
Date upload: <span id="date_upload" name="date_upload">{{folder.date_upload}}</span>
<a href="{% url 'view_gallery' %}" name="idd" value="{{ folder.id }}">Open</a>
{% endfor %}
</div>
视图.py
@login_required(login_url='log_permission')
def view_gallery(request):
if request.method == 'POST':
print("makibaoh")
idd = request.POST.get('idd')
title = request.POST.get('title')
date_upload = request.POST.get('date_upload')
image = gallery_photos.objects.filter(gallery_info_id = idd)
data = {'photos':image}
return render(request, 'view_gallery.html', data)
解决方案
是否有任何技巧或想法如何使用表单等传递数据?
如果我理解正确,您想使用form
buta
标记。
尝试这个:
<div class="row">
{% csrf_token %}
{% for folder in folder_list %}
Folder title: <span id="titles" name="titles" >{{folder.title}}</span></p>
Date upload: <span id="date_upload" name="date_upload">{{folder.date_upload}}</span>
<form action="{% url 'view_gallery' %}" method="POST" id="form1">
<!-- This input won't be show -->
<input type="text" idd={{folder.id}} style="display:none">
<button type="submit">Open</button>
</form>
{% endfor %}
</div>
然后,当您点击Open
按钮时,POST
将view_gallery
使用 params为 url 设置一个方法idd=123
。(example.com/view_gallery?idd=123)
然后它将起作用。
但我强烈建议您像这样组织 URL:
- 像这样声明 <a> 标签:
<a href="{% url 'view_detail_gallery' folder.id %}">
- 将您的 URL 模式更改为:
example.com/view_gallery/:id
。声明一个新的模式 URL:
path('gallery/<int:id>/', view_detail_gallery, name = 'gallery_detail'),
- 在 中声明一个新视图
views.py
:
@login_required(login_url='log_permission')
def view_detail_gallery(request, id):
if request.method == 'GET':
image = gallery_photos.objects.filter(gallery_info_id = id)
data = {'photos':image}
return render(request, 'view_detail_gallery.html', data)
您可以创建detail
或不创建新的 HTML,因为正如我所见,您没有这样做并且您的代码仍在工作(希望如此)。
推荐阅读
- angular - 使用 Angular 材料按列过滤谓词表
- kubernetes - 将日志从 kubernetes 转发到 splunk
- eclipse - 使用`make`创建Eclipse项目?
- c# - Protobuf-Net NotSupportedException:类型不能表示为封闭不可变类型的默认值(UnityEngine.Vector3)
- kubernetes - 如果我在部署后更改我的 ConfigMap 键值,是否需要重新启动使用 configMap 值的应用程序的部署?
- computational-geometry - CGAL - 是否可以计算带孔多边形的 NFP
- spring - Spring Boot + Primefaces - “无法识别的内容类型”异常
- google-colaboratory - 协作虚拟实例 IP 范围?
- tensorflow - 使用 Bazel 运行时,我应该在哪里保存 Tensorflow 的 .pb 图?
- visual-studio - Azure VM 中的 Visual Studio 2017 - 不是更改 IE 安全区的方法