Джанго проверить, если поле ввода формы не пусто - PullRequest
1 голос
/ 31 октября 2019

У меня есть форма с несколькими полями. Это все поля для оформления заказа. Так имя, фамилия, адрес электронной почты, адрес, телефон и многое другое. Затем есть кнопка типа submit, которая переходит на следующую страницу.

Что я хочу сделать, так это то, что если любое из этих полей пустое, должен быть красный текст с надписью: «field is empty», иначебудет продолжаться.

Вот как я пытался это сделать:

<form class="row contact_form" action="{% url 'create-order' %}" method="POST" novalidate="novalidate">
                  {% csrf_token %}  
                  <div class="col-md-6 form-group">
                        <input type="text" class="form-control" name="order-namn" placeholder="Namn">
                    </div>
                    <div class="col-md-6 form-group">
                        <input type="text" class="form-control" name="order-efternamn" placeholder="Efternamn">
                    </div>
                    <div class="col-md-12 form-group">
                        <input type="text" class="form-control" name="order-epost" placeholder="E-post för orderbekräftelse">
                    </div>
                    <div class="col-md-6 form-group">
                        <input type="text" class="form-control"  name="order-adress" placeholder="Adress">
                    </div>





                    <div class="col-md-6 form-group">
                      <input type="text" class="form-control"  name="order-ort" placeholder="Ort">
                  </div>


                    <div class="col-md-6 form-group">
                        <input type="text" class="form-control" name="order-postnummer" placeholder="Postnummer">
                    </div>

                    <div class="col-md-6 form-group">
                        <input type="text" class="form-control" name="order-telefon" placeholder="Telefon">
                    </div>
                    <div class="col-md-2 form-group">
                      <select class="browser-default" name="order-land">
                          <option value="Sverige" selected>Sverige</option>
                        </select>
                  </div>
                  <div class="col-md-2 form-group p_star">
                      <select class="browser-default" name="order-state">
                          <option selected>Län</option>
                          <option value="Blekinge län">Blekinge län</option>
                          <option value="Dalarnas län">Dalarnas län</option>
                          <option value="Gotlands län">Gotlands län</option>
                          <option value="Gävleborgs län">Gävleborgs län</option>
                          <option value="Hallands län">Hallands län</option>
                          <option value="Jämntlands län">Jämntlands län</option>
                          <option value="Jönköpings län">Jönköpings län</option>
                          <option value="Kalmar län">Kalmar län</option>
                          <option value="Kronobergs län">Kronobergs län</option>
                          <option value="Norrbottens län">Norrbottens län</option>
                          <option value="Skåne län">Skåne län</option>
                          <option value="Stockholms län">Stockholms län</option>
                          <option value="Södermanlands län">Södermanlands län</option>
                          <option value="Uppsala län">Uppsala län</option>
                          <option value="Värmlands län">Värmlands län</option>
                          <option value="Västerbottens län">Västerbottens län</option>
                          <option value="Västernorrlands län">Västernorrlands län</option>
                          <option value="Västermanlands län">Västermanlands län</option>
                          <option value="Västra Götalands län">Västra Götalands län</option>
                          <option value="Örebro län">Örebro län</option>
                          <option value="Östergötlands län">Östergötlands län</option>
                        </select>
                  </div>

                    <div class="col-md-12 form-group mb-0">
                        <div class="creat_account">


                        </div>
                        <textarea class="form-control" name="message" id="message" rows="1" placeholder="Information till säljaren (Frivilligt)"></textarea>
                    </div>







            </div>
            <div class="col-lg-4">
                <div class="order_box">
                    <h2>Din Beställning</h2>
                    <ul class="list">
                        <li><a href="#"><h4>Produkt <span>Totalt</span></h4></a></li>



                        {% for item in cartItems %}
                        <li><a href="#">{{ item }} x {{item.quantity}} <span class="last" >{{ item.get_total_item_price }} Kr</span></a></li>
                        {% endfor %}

                    </ul>
                    <ul class="list list_2">
                        <li><a href="#">Frakt <span>Gratis Frakt</span></a></li>
                        <li><a href="#">Totalt <span">{{shopCart.get_total}} Kr</span></a></li>
                    </ul>

                    <div class="payment_item active">


                    </div>
                    <div class="creat_account">

                    </div>
                    <div class="payment_item">
                      <div class="radion_btn">
                          <input type="radio" id="f-option5" name="selector" value="Klarna">
                          <label for="f-option5">Klarna</label>
                          <img src="{% static 'assets/img/product/klarna.png' %}" alt="">
                          <div class="check"></div>
                      </div>
                      <p>Klarna offers flexible payment options that allow customers more freedom to choose when and how to pay for a purchase.</p>
                  </div>
                  <div class="payment_item active">
                      <div class="radion_btn">
                          <input type="radio" id="f-option6" name="selector" value="Kort">
                          <label for="f-option6">Kortbetalning </label>
                          <img src="{% static 'assets/img/product/card.jpg' %}" alt="">
                          <div class="check"></div>
                      </div>
                      <p>Betala med Kort. Alla betalningar går igenom Stripe Secure Checkout.</p>
                  </div>

                    {% if order-namn is None %}
                    <div class="text-center">
                     <button type="submit" class="button button-paypal">Fortsätt till Betalning</button>
                    </div>
                    {% endif %}

                </div>
            </div>
        </div>




    </div>




</div>

1 Ответ

0 голосов
/ 31 октября 2019

На стороне клиента у вас есть возможность добавить атрибут required в HTML или проверить форму, используя javascript или jQuery. Простой пример - if (my_input_object.value.length == 0) { alert("message"); return false; }. Однако, чтобы сделать вашу сторону сервера более устойчивой, допустим, вы хотите проверить, пусто ли значение <input name="Name">. Вы можете проверить каждую переменную в полезной нагрузке почтового запроса следующим образом:

if request.POST['Name']:
    news.name = request.POST['Name']
else:
    return render(request, 'template.html', {'ERROR':'Input field is empty'})

Затем в своем шаблоне вы можете захватить {{ ERROR }} и отобразить их в любом формате, который вам нравится (например, красный, ... ).

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