You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django模态框无法正确获取DataFrame对应索引值问题求助

问题根源分析

你遇到的问题核心很明确:所有模态框都使用了同一个id="myModal"。HTML中id是唯一标识,浏览器在查找data-target="#myModal"时,只会找到页面中第一个匹配该id的元素,所以不管你点击哪一行的按钮,打开的都是第一行对应的模态框,自然显示的是第一行的内容。

虽然控制台打印的destinations[int(temp)]是正确的(因为循环时temp会遍历每一行的索引),但模态框的id重复导致了显示错位。

解决方案:给每个模态框生成唯一ID

我们只需要给每一行的模态框分配一个唯一的id(比如结合当前行的索引temp),同时让对应按钮的data-target指向这个唯一id即可。修改你的循环代码如下:

for i in soup.find("tbody").find_all('tr'):
    temp = i.find('th').text
    # 为当前行的模态框生成唯一ID
    unique_modal_id = f"myModal-{temp}"
    # 构建带唯一ID的模态框HTML,直接填充对应内容
    modal_content = f'''
    <td>
        <button type="button" class="btn btn-info btn-sm" data-toggle="modal" data-target="#{unique_modal_id}">Open Modal</button>
        <div class="modal fade" id="{unique_modal_id}" role="dialog">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal">&times;</button>
                        <h4 class="modal-title">Modal Header</h4>
                    </div>
                    <div class="modal-body">
                        <p>{destinations[int(temp)]}</p>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                    </div>
                </div>
            </div>
        </div>
    </td>
    '''
    # 将构建好的HTML添加到当前行
    i.append(BeautifulSoup(modal_content, 'html.parser'))
    print(destinations[int(temp)])
关键修改点说明
  1. 唯一ID生成:用temp(当前行的索引)拼接成myModal-{temp},确保每个模态框的id独一无二。
  2. 按钮与模态框关联:按钮的data-target指向对应的唯一id,点击时会精准定位到当前行的模态框。
  3. 直接填充内容:在构建模态框HTML时就把destinations[int(temp)]的值放到<p>标签里,避免了你之前错误的DOM操作尝试(i.find('th')[7].find('p')str(...)这段代码语法是错误的,不需要保留)。

这样修改后,点击每一行的按钮都会打开对应索引的模态框,显示正确的内容了。

内容的提问来源于stack exchange,提问作者Tayyab Vohra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:05:25