我正在尝试获取所选列表项的索引值

时间:2019-11-21 14:25:40

标签: python html django forms list

search.py​​


    <div class="container">
      <br>
      <div class="dropdown">
              <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                Names
              </button>
              <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
                {% for items in name %}
                <a class="dropdown-item" href="{% url 'details' %}">{{ items }}</a>
                {% endfor %}
              </div> 
      </div>


name是一个变化的列表,它可以有2或3或n个项目,因此我使用了for循环来显示下拉列表中的所有项目。现在我想做的就是获取索引下拉项目已单击。 例如,我单击下拉列表的第三项,我想将索引2传递给我的views.py,因此当它重定向到url“ details.html”时,网页上显示的数据将从其中的列表中拉出我想根据索引传递下拉菜单中单击的项目的索引。

views.py

    def details(request ):
        name = request.session.get("name")
        data = request.session.get("data")
        txns = data["drop-downindex"]["txns"]
        context ={"txns":txns ,"name1":name1}
        return render(request , "details.html", context )

会话是我用来存储数据的过程,我基本上是在另一个函数中创建一个API并将json数据存储在一个数据变量中,该变量是一个列表 1)数据列表包含各种名称的txns详细信息(下拉列表) 因此,当我单击下拉列表的第二项时,索引1应该进入我的数据列表,并获取列表项2或索引1的txns

2 个答案:

答案 0 :(得分:0)

使用枚举方法可以在列表中创建索引值。

name =['a','b','c','d','e']
for key,value in enumerate(name):
      print(key , value)

输出:

         1 a
         2 b
         3 c
         4 d
         5 e

答案 1 :(得分:0)

更改您的URL,使其接受索引参数。像

url( r'^details/(?P<index>\d+)/$', myview, name='detail' )

更改视图以接受索引参数

更改模板以将索引参数传递给url

 <a class="dropdown-item" href="{% url 'details' index=index %}">{{ items }}</a>

我不清楚该索引参数来自何处,但在您的视图上下文中会有所变化。规范示例是一个详细信息视图,该视图接受对象ID,该对象ID是通过迭代模板中的queryset来获得的:

... href="{% url 'details' id=object.id %}"

如果名称是列表,则将name=enumerate(name)传递给模板,for循环将为{% for index,items in name %}