如何 return 两个 Python 对象到 HTML

How to return two Python objects to HTML

我有这个 HTML 和我通过 POST 发送以下表单的 JS 代码,首先它评估了 HTML 中的那些元素是否是 select编辑

page.HTML

<div style="width: 100%; height: 70%;">
     <ul>
         <li><input type="checkbox" name="biblioteca[]" value="biblioteca" id="rd-biblioteca"/>
           <p class="label-text">Biblioteca </p>
         </li>
         <li><input type="checkbox" name="books[]" value="revistas" id="cb-revistas"/>
            <p class="label-text">Revistas </p>
         </li>
         <li><input type="checkbox" name="books[]" value="novelas" id="cb-novelas"/>
            <p class="label-text">Novelas </p>
         </li>
     </ul>
</div>

file.js

$('#msform').validate({
       submitHandler: function (form) {
           $('#rd-biblioteca').is(':checked')?$('#rd-biblioteca').val():$('#rd-biblioteca').val(0);
           $('#cb-revistas').is(':checked')?$('#cb-revistas').val():$('#cb-revistas').val(0);
           $('#cb-novelas').is(':checked')?$('#cb-novelas').val():$('#cb-novelas').val(0);
           form.submit();
       }
   });

在views.py中我得到了POST,然后询问这些值是否是selected的值,如果是,则创建一个名为Info的对象并且保存在 ListaProject 中。

views.py

def school(request):
    if request.method == 'POST':
        listaProject = []

        if request.POST.get("biblioteca[]") == 'biblioteca':

            if request.POST.get("books[]") == 'revistas':
                revistas = Info(titulo="Titulo ..",
                                descripcion="Descripcion ...",
                                precio="Precio ...")
                listaProject.append(cocina)
            else:
                if request.POST.get("books[]") == 'novelas':
                    novelas = Info(titulo="Titulo 2...",
                                  descripcion="Descripcion 2...",
                                  precio="Precio 2...")
                    listaProject.append(nube)
        return render_to_response("v2/index.html", {'listaProject': listaProject},
                                  context_instance=RequestContext(request))
    else:
        response_data = {}
        response_data['response'] = "ok"
        return HttpResponse(json.dumps(response_data), content_type="application/json")

我需要知道的是如何 select 勾选书籍 [] 的两个复选框显示两个对象,因为只显示一个对象,即使您 select 两者都显示。

您可以获得多个选中的复选框值,通过更改 js 和视图 file.Hope 它可以帮助您

$('#msform').validate({
   submitHandler: function (form) {
       allVals=[]

       $('#rd-biblioteca').is(':checked')?$('#rd-biblioteca').val():$('#rd-biblioteca').val(0);

      $('input[name="books[]"]:checked').each(function () {
          allVals.push($(this).val());
        });/*you can get multiple selected checkbox list in array */
       form.submit();
   } });

视图文件中的更改:

def school(request):
if request.method == 'POST':
    listaProject = []


        if request.POST.get("biblioteca[]") == 'biblioteca':
            revistas = Info(titulo="Titulo ..",
                            descripcion="Descripcion ...",
                            precio="Precio ...")
            listaProject.append(cocina)
        else:
            if request.POST.get("books[]") == 'revistas' or 'novelas':
                novelas = Info(titulo="Titulo 2...",
                              descripcion="Descripcion 2...",
                              precio="Precio 2...")
                listaProject.append(nube)
    return render_to_response("v2/index.html", {'listaProject': listaProject},
                              context_instance=RequestContext(request))
else:
    response_data = {}
    response_data['response'] = "ok"
    return HttpResponse(json.dumps(response_data), content_type="application/json")`enter code here`