将多个值从模板传输到视图-Django

问题描述 投票:1回答:1

我正在开发一个简单的游戏,用户可以在模板中选择许多数字,然后将它们传递给视图。

我的模板如下所示:enter image description here

  <div class="col-lg-2">
    <div class="card text-center bg-gradient-primary border-0 hover-shadow-lg hover-translate-y-n3 mb-4 ml-lg-0">
      <div class="card-body">
        <div class="d-inline-flex align-items-start">
          <div class="pl-0">
            <span class="d-block h2 text-white mr-2 mb-1"><b>1</b></span>
          </div>
        </div>
      </div>
    </div>
  </div>
  <div class="col-lg-2">
    <div class="card text-center bg-gradient-primary border-0 hover-shadow-lg hover-translate-y-n3 mb-4 ml-lg-0">
      <div class="card-body">
        <div class="d-inline-flex align-items-start">
          <div class="pl-0">
            <span class="d-block h2 text-white mr-2 mb-1"><b>2</b></span>
          </div>
        </div>
      </div>
    </div>
  </div>

现在用户选择字段9、13、16、19、22。我想在单击“选择号码”按钮后立即传递所有值。不刷新页面(直到单击按钮)。我怎样才能做到这一点?我当时正在考虑使用隐藏字段<input type="hidden" name="number1" value="1">,但每次我的模板都会刷新。

一种选择是使用get方法传递值,为每个卡元素href=?button_number_1=1设置类似的值,然后使用request.GET['button_number_1']在视图中获取它们。然后使用方法发布将所有内容保存起来。但是也许还有另一种方法呢?任何帮助将不胜感激。

如果我的问题没有得到很好的理解。我将尽力澄清它们。抱歉,但是英语不是我的主要语言。

django templates view
1个回答
1
投票
urls.py

path(r'ajax/your_function_name/', your_function_name, name='your_function_name'),


html file

# You need to use ajax call

$('.text-white').on('click', function () {
        $.ajax({
            type : "POST",
            url: '/ajax/your_function_name/',
            data : $(".text-white").text(),
            success: function (data) {
        # after success function return value, perform your action
            }
        });
});


views.py

def your_function_name(request):
    print(request.data)
    pass
© www.soinside.com 2019 - 2024. All rights reserved.