简体   繁体   English

如何在Django的下拉选择选项中插入按钮?

[英]How to insert a button in a dropdown selected option in Django?

I would like to insert a dropdown in Django that will return me to a page, and I am inserting a button that will lead to that page, but when I do this I return to the page I am currently in. 我想在Django中插入一个下拉菜单,它将使我返回页面,并且我将插入一个指向该页面的按钮,但是当我这样做时,我将返回当前所在的页面。

index.html index.html

{% if lista_de_provas %}
  <form method='post' action=''>
  {% csrf_token %}
  <select class="form-control"  name="prova_selecionada" id="prova_selecionada">
    {% for prova in lista_de_provas %}
      <option id="{{prova.idProva}}" name="listaProvas" value='{{prova.idProva}}' disabled>{{prova.tipoProva}} {{prova.anoProva}}</option>
    {% endfor %}
  </select>
  <input id="selProva" type="button" value="Confirma" onclick = "location.href ='{{prova.idProva}}';" />
  </form> 
{% endif %}

views.py views.py

def index(request):
    lista_de_provas = Prova.objects.all()
    cprova = request.POST.get('idProva')
    if request.method == 'POST':
        sprova = Prova.objects.get(cprova = cprova)
        sprova.select()
        return redirect('polls/detalhes.html')
    else:
        form = ProvaForm()
    return render(request, 'polls/index.html',{'form':form,'lista_de_provas': lista_de_provas})

There are two ways you can do this. 有两种方法可以执行此操作。

First, you can specify explicitly what object you want. 首先,您可以明确指定所需的对象。 If you are looking for the second element you can do something like this: 如果您正在寻找第二个元素,则可以执行以下操作:

{% if lista_de_provas %}
        <form method='post' action=''>
        {% csrf_token %}
        <select class="form-control"  name="prova_selecionada" id="prova_selecionada">
            <option id="{{prova.1.idProva}}" name="listaProvas" value='{{prova.1.idProva}}' desabled>{{prova.1.tipoProva}} {{prova.1.anoProva}}</option>Mdjss.199
        </select>
        <input id="selProva" type="button" value="Confirma" onclick = "location.href ='{{prova.1.idProva}}';" />
        </form> 
      {% endif %}

Or to make it a bit more "Dynamic" and fail-safe, you can go in your view and use a .filter() on your object. 为了使它更具“动态”性和故障安全性,您可以进入视图并在对象上使用.filter() So instead of lista_de_provas = Prova.objects.all() you can do something like: 因此, lista_de_provas = Prova.objects.all()您还可以执行以下操作:

lista_de_provas = Prova.objects.filter(id=2)

Sorry if I missed something. 对不起,如果我错过了什么。 English is my first language. 英语是我的第一语言。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM