Django получение значений флажков, отправленных Ajax запросом POST - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь отправить данные формы на сервер Django через Javascript Ajax, запрашивая специально значения флажков, но на сервере я прочитал значения Нет. вот код сервера, который гласит:

@csrf_protect
def order_pizza(request):
    if request.is_ajax() and request.method == "POST":
        topps = Topping.objects.all()
        for topp in topps:
            mytop = request.POST.getlist('topping')
            print(f"topp is {topp.__str__()} mytop is {mytop}")
    return HttpResponse("pizza order!!")

А вот html для формы:

<form id="form_pizza_order" class="form_pizza_order" method="post">
        {% csrf_token %}
        <div class="row">
          <div class="order_topp_col col-12">
            <header> Topping </header>
            {% for topp in toppings %}
            <input type="checkbox" id="{{ topp.name }}"  name="topping" value="{{ topp.name }}">
            <label for="{{ topp.name }}"> {{topp.name}}</label>
            {% endfor %}
          </div>
...

функция печати возвращает результат:

topp is Pepperoni mytop is []
topp is Sausage mytop is []
topp is Mushrooms mytop is []
topp is Onions mytop is []
topp is Ham mytop is []
etc ...

что я должен сделать, чтобы иметь возможность читать значения флажков? Спасибо.

1 Ответ

0 голосов
/ 09 мая 2020

У меня была ошибка при javascript отправке данных формы на сервер.

Я использовал const FD = new FormData();

Теперь я понял, что должен был использовать:

  let myform = document.getElementById("form_pizza_order");
    const FD = new FormData(myform);

Теперь данные заполняются на сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...