代码之家  ›  专栏  ›  技术社区  ›  user9478084

模态未拾取正确的值

  •  0
  • user9478084  · 技术社区  · 8 年前

    我只是想知道为什么这个模式没有得到正确的值。当我单击按钮时,它将只显示一个值的附加信息。我在某个地方读到过,可能是因为身份证的问题,但我想不出来。

    2 回复  |  直到 8 年前
        1
  •  0
  •   anjaneyulubatta505 Anshik    8 年前

    尝试按以下方式更改代码

    <td><button type="button" class="btn btn-primary" data-toggle="modal" data-target="#breedModal">Click Here</button></td>
    

    <td><button type="button" class="btn btn-primary" data-toggle="modal" data-target="#breedModal_{{forloop.counter}}">Click Here</button></td>
    

    <div class="modal fade" id="breedModal" tabindex="-1" role="dialog" aria-labelledby="breedModalLabel" aria-hidden="true">
    

    <div class="modal fade" id="breedModal_{{forloop.counter}}" tabindex="-1" role="dialog" aria-labelledby="breedModalLabel" aria-hidden="true">
    

    现在,我将为每一行生成唯一的模型id。

        2
  •  0
  •   Craig van Tonder eggyal    8 年前

    本质上,我想说的是,你有:

    <div class="modal fade" id="breedModal" ...
    

    但您在迭代(for循环)中多次创建这个。您需要具有唯一的id,因此我建议更像:

    <div class="modal fade" id="breedModal{{ breed.id }}" ...
    

    无论如何,您还需要更改对此的引用:

    <button type="button" data-target="#breedModal{{ breed.id }}"...
    

    这样,每个模态都有一个唯一的id,因此当您单击按钮时,它知道应该打开多个模态中的哪一个。

    当前所有按钮均显示open #breedModal 但因为有很多,你只能看到第一个。

    编辑:

    事实上,虽然你没有 breed.id 数据库中的值,因此在for迭代中使用键值对,请参见此处 https://docs.djangoproject.com/en/2.0/ref/templates/builtins/#for

    因此,您有:

    {% for key, breed in breeds %}
    

    而不是试图使用 繁殖id号 正如我所建议的使用 key (将是与记录索引相关的数字键),因此id属性将呈现为 breedModal0 ,则, breedModal1

    推荐文章