【发布时间】:2020-11-03 13:03:52
【问题描述】:
我创建了一个名为 Store 的模型对象并将其传递给 django 模板,并在 POST 表单中的 for 循环中调用它,如下所示:
<form action="/order_page/" method="POST">
{% csrf_token %}
<input type="number" name="student_id" >
<br/><br/>
<br/>
<div class="row">
{% for store in stores %}
<input type="hidden" name="store_id" value="{{store.id}}">
<input type="submit" value="{{store.store_name}}{{store.id}}" class="button store-button" type="button">
{% endfor %}
</div>
</form>
它工作正常,在单击它提交表单的按钮时显示带有每个商店名称和 id 的所有按钮,并将我带到下一个模板,在该模板中我捕获了 POST 商店 ID 和学生 ID,并将它们传递给下一页模板。但问题是显示的商店总是最后添加的商店,无论我在 POST 表单的第一页按哪个按钮,但按钮完美地显示了不同的商店及其 id,我不明白这是为什么甚至没有显示错误。
【问题讨论】:
-
在 Django 中执行此操作的常用方法是为详细的乐谱页面使用单独的 URL,然后将每个按钮链接到它。你能从视图和网址分享你的代码吗?
-
@Jain 通常的方法是使用 ajax
-
def home(request): stores = Store.objects.all() return render (request, 'tray/home.html', {'stores':stores}) def order_page(request):如果 request.method == 'POST': student_id = request.POST['student_id'] store_id = request.POST['store_id'] student = Student.objects.get(id = student_id) store = Store.objects.get( id = store_id) 返回渲染(请求,'tray/order_
标签: python django django-models django-templates