Проблема с Django Bootstrap модальными - PullRequest
0 голосов
/ 21 апреля 2020

Я использую django - bootstrap -modal-forms для реализации модальных форм в моем проекте. Я реализовал их таким образом, чтобы запуск модалов можно было выполнить из моей базы. html, и, следовательно, можно было бы выполнить на каждой странице моего приложения. Модал успешно запускается на всех страницах, публикуется на всех страницах, но на нескольких страницах он возвращает форму с сообщениями проверки, даже если он успешно опубликован и проблем нет. Этот пакет использует два почтовых запроса для того, чтобы заставить работать структуру сообщений, но я не понимаю, как это могло бы работать на некоторых страницах, а не на других, когда я, казалось бы, сделал точно такую ​​же вещь. Например, у меня есть модальный способ создания груза. Это отображает ошибки проверки (несмотря на успешную публикацию) на главном экране приложения, но отлично работает на странице Просмотр отправлений Если кто-то может помочь, это сводит меня с ума.

Я замечаю, что на страницах, где это не работает, я получаю ошибку сломанной трубы в моем терминале. Я также заметил, что кажется, что он пытается разместить 3 раза на страницах, что это не работает. Пожалуйста, смотрите скриншоты ниже для различия между успешным и «неуспешным» использованием этой формы.

views.py

class NewUpdateAjaxMixin(object):

    #Mixin which passes or saves object based on request type.

    def save(self, commit=True):
        if not self.request.is_ajax():
            instance = super(NewUpdateAjaxMixin, self).save(commit=commit) #I've tried these in reverse
        else:
            instance = super(NewUpdateAjaxMixin, self).save(commit=False) #I've tried these in reverse
        return instance



class CreateShipmentView(NewUpdateAjaxMixin, BSModalCreateView):
    template_name = 'create_shipment.html'
    form_class = CreateShipmentForm
    success_message = 'Success: Shipment Has Been Created!'
    success_url = reverse_lazy('HomeView')

УСПЕШНЫЙ ТЕРМИНАЛ:

enter image description here

НЕУДАЧНЫЙ ТЕРМИНАЛ:

enter image description here

doc_list. html (форма работает успешно)

{% extends 'base.html' %}

{% block body %}
{% load staticfiles %}




<form method="POST">
  {% csrf_token %}
<div class="wrapper">
  <div class="header">
    <h3>Menu</h3>
  </div>
  <div class="header">
    <h3> {{ Shipment_Reference }}  -  Documents   <button id="send" type="submit" name="save" class="submit-btn btn-sm btn-info waves-effect mr-4 submitbuttons"><i class="fa fa-paper-plane" aria-hidden="true"></i> Send</button></h3>
  </div>
  <div>
    <ul class="list-group">
      <li class="list-group-item">
        <form>


          <button class="btn btn-outline-secondary sidebutton btn dropdown-toggle mr-4" type="button" data-toggle="dropdown"
  aria-haspopup="true" aria-expanded="false">Create Doc</button>

            <div class="dropdown-menu">
              <a class="dropdown-item" href="{% url 'PackingListView' Shipments.pk%}">Packing List</a>
              <a class="dropdown-item" href="#">Bill of Lading</a>
              <a class="dropdown-item" href="#">Forwarding Instructions</a>
              <a class="dropdown-item" href="#">Certificate of Origin</a>
            </div>

        </form>
      </li>
      <li class="list-group-item">
        <form>
          <a class="btn btn-default sidebutton" role="button" href="#"><i class="far fa-file-alt"></i> Edit Doc</a>
        </form>
      </li>
      <li class="list-group-item">
        <form>
          <a class="btn btn-default sidebutton" role="button" href="{% url 'MiscellaneousDocumentsView' Shipments.pk %}"><i class="far fa-file-alt"></i> Upload Doc</a>
        </form>
      </li>
    </ul>
  </div>
  <div>
    <ul class="list-group">
      {% for item in PackingListDocs %}
      <li class="list-group-item">
        <a href="{% url 'EditPackingListView' item.Packing_List.pk %}" class="a" type="button">
            <div class="md-v-line"></div><input type="checkbox" name="checks" value="{{ item.PackingListDocument }}">  {{item.Packing_List.Name}}<a class="doclink" href="{{ item.PackingListDocument.url|default_if_none:'#' }}" download>View Doc</a>
        </a>
      </li>
      {% endfor %}

      <!--{% for item in ProformaDocs %}
      <li class="list-group-item">
        <a href="{% url 'EditProformaView' item.proforma.pk %}" class="a" type="button">
            <div class="md-v-line"></div><input type="checkbox" name="checks" value="{{ item.proformaDocument }}">  {{item.proforma.Name }}<a class="doclink" href="{{ item.proformaDocument.url|default_if_none:'#' }}" download>View Doc</a>
        </a>
      </li>
      {% endfor %}-->

      {% for item in MiscellaneousDocs %}
      <li class="list-group-item">
        <a href="#" class="a" type="button">
            <div class="md-v-line"></div><input type="checkbox" name="checks" value="#">  {{item.name}}<a class="doclink" href="{{ item.document.url|default_if_none:'#' }}" download>View Doc</a>
        </a>
      </li>
      {% endfor %}
    </ul>
  </div>



</div>


</form>


<div class="modal fade" tabindex="-1" role="dialog" id="modal">
  <div class="modal-dialog" role="document">
    <div class="modal-content">

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

<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<script src="script.js"></script>
<script src="{% static 'js/jquery.bootstrap.modal.forms.js' %}"></script>

home. html (форма не работает)

{% extends 'base.html' %}

{% block body %}
{% load staticfiles %}

  <!--- Message Display --->
<div class="container">
  <div class="col-xs-12">
    {% if messages %}
    {% for message in messages %}
    {% if message.level == DEFAULT_MESSAGE_LEVELS.ERROR %}
      <div class="alert alert-danger" role="alert">
        <center>{{ message }}</center>
      </div>
    {% endif %}
    {% if message.level == DEFAULT_MESSAGE_LEVELS.SUCCESS %}
      <div class="alert alert-success" role="alert">
        <center>{{ message }}</center>
      </div>
    {% endif %}
    {% if message.level == DEFAULT_MESSAGE_LEVELS.INFO %}
      <div class="alert alert-info" role="alert">
        <center>{{ message }}</center>
      </div>
    {% endif %}
    {% endfor %}
    {% endif %}
  </div>
</div>


<div class="hometable">
  <h4 class="table-header">To-Do's</h4>
  <hr/>
  <table class="table table-hover">
  <thead>
    <tr>
      <th scope="col">#</th>
      <th scope="col">Reference </th>
      <th scope="col">Task Category</th>
      <th scope="col">Task Description</th>
      <th scope="col">Due Date</th>
      <th scope="col">Owner</th>
      <th scope="col">Status</th>

    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">1</th>
      <td>219001</td>
      <td>Documents</td>
      <td>Create COS</td>
      <td>12/20/19</td>
      <td>Matt Caputa</td>
      <td><button type="button" class="btn btn-success btn-rounded btn-sm todobutton">Complete</button></td>
    </tr>
    <tr>
      <th scope="row">2</th>
      <td>219002</td>
      <td>Documents</td>
      <td>Send Proforma</td>
      <td>12/15/19</td>
      <td>Greg Mumford</td>
      <td><button type="button" class="btn btn-warning btn-rounded btn-sm todobutton">Working</button></td>
    </tr>
    <tr>
      <th scope="row">3</th>
      <td>219003</td>
      <td>Claims</td>
      <td>File Claim</td>
      <td>12/16/19</td>
      <td>Matt Caputa</td>
      <td><button type="button" class="btn btn-danger btn-rounded btn-sm todobutton">To Do</button></td>
    </tr>
  </tbody>
</table>
</div>

<div class="modal fade" tabindex="-1" role="dialog" id="modal">
  <div class="modal-dialog" role="document">
    <div class="modal-content">

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


<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script> 
<script src="script.js"></script>
<script src="{% static 'js/jquery.bootstrap.modal.forms.js' %}"></script>
...