Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 循环变量保存的jijna2?_Python_Html_Web Applications_Flask_Jinja2 - Fatal编程技术网

Python 循环变量保存的jijna2?

Python 循环变量保存的jijna2?,python,html,web-applications,flask,jinja2,Python,Html,Web Applications,Flask,Jinja2,我正在开发一个web应用程序,并尝试添加一些功能,在这些功能中,您可以发布匿名帖子,然后有人可以添加答案。我正在使用Flask作为后端。我将帖子存储在SQLAlchemy数据库中。默认情况下,帖子没有答案。要显示帖子,我只需使用jinja2打印每个帖子,并使用for循环。在for循环中,我也在每个帖子之后打印一个答案按钮,它提出了一个基础模型,它应该让用户输入他们的答案。问题是action属性引用了post ID{{post.ID},在循环结束时它引用了最后一个post。这是我的密码: {% f

我正在开发一个web应用程序,并尝试添加一些功能,在这些功能中,您可以发布匿名帖子,然后有人可以添加答案。我正在使用Flask作为后端。我将帖子存储在SQLAlchemy数据库中。默认情况下,帖子没有答案。要显示帖子,我只需使用jinja2打印每个帖子,并使用for循环。在for循环中,我也在每个帖子之后打印一个答案按钮,它提出了一个基础模型,它应该让用户输入他们的答案。问题是action属性引用了post ID{{post.ID},在循环结束时它引用了最后一个post。这是我的密码:

{% for post in s: %}
  {% if post.nh == hood %}
    <li>
      <td> {{ post.date.strftime('%Y-%m-%d %H:%M:%S') }} </td>
      <br>
      <td> {{ post.text }} {{post.nh}} </td>
      <br>
      <a href="" data-reveal-id="reply_modal" class="button tiny">Answer</a>
      <div id="reply_modal" class="reveal-modal" data-reveal aria-labelledby="modalTitle" aria-hidden="true" role="dialog">
        <p>{{ post.text }}</p>
        <form action='/{{post.id}}/{{hood}}' method="post"> 
          <div class="row">
            <div class="large-12 columns">
              <textarea placeholder="Write your answer here"name="user_input" required></textarea>
            </div>
            <div class="right">
             <button type="submit">Submit</button>
            </div>  
          </div>
        </form> 
        <a class="close-reveal-modal" aria-label="Close">&#215;</a>
      </div>    
      <br>
      {% if post.answer != 'none' %}
        <li>
          <div align="right">
            <td> {{ post.answer }} </td>
          </div>
        </li>
      {% endif %}
    </li>
  {% endif %}
{% endfor %} 

我基本上需要为每个答案按钮保留{{post.id}},以便将答案添加到正确的帖子中。如果有任何建议,我将不胜感激

我不明白你的问题。post.id是每个岗位的连续id;按照您的方式,每个帖子都有一个表单,每个表单都会引用该帖子的id。那不是你想要的吗?那是我想要的,但那不是它正在做的。无论我按哪个回答按钮,答案都只会添加到最后一篇文章中。我假设这是因为for循环末尾的{{post.id}}是最后一个post的id。不,不是这样。更有可能的是,您的标记有问题;似乎给每个表单赋予了相同的id属性,这在HTML中是无效的,因此JS只会触发最后一个表单。实际上,无论如何,您不应该实际输出多个表单;您应该在末尾输出一个表单,并在它显示时将正确的ID传递给它。但是如何将表单放置在for循环之外呢?如果我这样做,{{post}}将超出它的范围。好的,我找到了一个解决办法,给每个表单一个唯一的id。谢谢你指出这个错误!