我有一个页面,将数据库中的条目作为“用户”提取并列出它们。典型结果如下:
现在,我想点击特定的名称,然后转到他们的特定页面。为此,我有一个表单发布到一个视图,该视图需要已被“点击”的用户
到目前为止,我在循环中有一个表单,遍历'users'表中的每个'user'。设置工作正常,但主要问题是表单元素'name'被最后一个用户替换。无论如何,我点击它的名字总是传递最后一个用户的用户名。
{% for user in users %}
<h1>{{ user.firstName }} {{ user.lastName }}</h1>
<form action="/friend_profile/" method="post" accept-charset="utf-8">
<input type="hidden" name="selectedFriend" value ={{ user.userName }}>
<button type="submit" value="view profile">
{% endfor %}
我没有使用DJango表单,只是使用request.method =='POST'来接收变量。
所以我的愚蠢问题是,有没有办法动态创建'name'表单元素并提交特定于用户的内容?现在,无论我点击哪个用户,表单总是提交用户“Chris”,因为它是列表中的最后一个用户。
答案 0 :(得分:1)
现在,无论我点击哪个用户,表单总是会向用户“Chris”提交,因为它是列表中的最后一个用户。
那是因为您没有关闭<form>
标记,因此浏览器会看到一大堆嵌套表单。
此外,您需要引用并转义隐藏value
中的input
属性:
<form action="/friend_profile/" method="post" accept-charset="utf-8">
<input type="hidden" name="selectedFriend" value="{{ user.userName|escape }}">
<button type="submit" value="view profile">
</form>