Как я могу обновить запись Firebase с использованием представлений Django с новыми данными при нажатии кнопки? - PullRequest
0 голосов
/ 13 мая 2019

Я работаю над панелью управления, где администратор может получить все данные, хранящиеся в firebase, а затем выполнить операции с этими данными

Мне удалось опубликовать данные в firebase с использованием представления django, и я также могу получить те же данные в html-таблице, используя представление, но мне сложно обновить эти данные новыми данными.

Мой код, который обновляет все узлы в базе данных вместо одного узла я знаю, что моя проблема в том, как получить один идентификатор для обновления

Я пробовал несколько решений, представленных в Интернете, таких как это , но проблема сохраняется

 this is my deactivate_status.html
    {% extends 'sidebar.html' %}
   {% block body %}

       <div class="container">
           <h4>Home<b> ></b> Deactivated Service Providers</h4>

              <div class="row">
                    <form id="form" method="POST" action = "/deactivate_status">
                                                {% csrf_token %}
                        <table class="table" border="0.5">

                                 <thead>
                                    <tr style="font-size:larger">

                                        <th>Username</th>
                                        <th>Telephone</th>
                                        <th>Profile Pic</th>
                                        <th>Service</th>
                                        <th>Status</th>
                                        <th>Take Action</th>


                                    </tr>
                                </thead>
                                <tbody>
                                     <tr style="font-size:large">
                                        {% for username,telephone,photo,service,status  in combine %}
                                             <td>{{username}}</td>
                                             <td>{{telephone}}</td>
                                             <div class="container1">
                                                 <td><img src="{{photo}}" style="max-width:20%; max-height:20%;cursor:pointer"
                                               onclick="onClick(this)" class="modal-hover-opacity"></td>
                                             </div>
                                             <td>{{service}}</td>
                                             <td>{{status}}</td>
                                             <td> <button class="btn-success" id="try" value="Deactivate" onClick="Reactivate()" name="status">Reactivate</button></tr>
                                        {% endfor %}
                                </tbody>
                        </table>

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


<!-- The Modal -->
<div id="modal01" class="modal" onclick="this.style.display='none'">
  <span class="close">&times;&nbsp;&nbsp;&nbsp;&nbsp;</span>
  <div class="modal-content">
    <img id="img01" style="max-width:100%">
  </div>
</div>
   {% endblock %}

        my view.py
        def deactivate_status(request):
            all_ids = 
        db.child('Users').child('AllServiceProviders').shallow().get().val()
        StatusIds = []
        for status_id in all_ids:
            StatusIds.append(status_id)
        AccStatus = []
        for i in StatusIds:
            accstate = db.child('Users').child('AllServiceProviders').shallow().child(i).child('accountStatus').get()
            accstate = accstate.val()
            if accstate=='approved':
                data={"accountStatus":"deactivated"}
                dat=db.child('Users').child('AllServiceProviders').child(i).update(data)
                AccStatus.append(dat)
        return redirect('index')

Вот мой javascript, который я пытаюсь использовать для обновления firebase

   <script>
    var config ={<!-- this is the configuration script that connects to 
 the firebase-->
    'apiKey': "XXXXXXXXXXXXXXXXXXXXX",
     'authDomain': "XXXXXXXXXXXXXXXXXXXXX",
      'databaseURL': "XXXXXXXXXXXXXXXXXXXXXXXXXXX",
      'projectId': "canondashoard",
      'storageBucket': "XXXXXXXXXXXXXXXXXXXXXX",
      'messagingSenderId': "XXXXXXXXXXXXXXXXXXXXXXXXXX",
      'appId': "XXXXXXXXXXXXXXXXXXXXXXXXX"

     };
      firebase.initializeApp(config);
      function Reactivate() {
      var database = firebase.database();
      var stateref=database.ref().child('Users').child('AllServiceProviders');
      var key = stateref.push().key;
      var update ={};
      update[key]={accountStatus:'approved'};
      var result=stateref.update(update);
      document.getElementById('try').innerHTML='result:'+result;
  }

Я не показал вам свою базу данных firebase-real-time, потому что она работает нормально, я хочу обновить идентификатор одного узла, когда нажимаю кнопку деактивации, но не обновляю все узлы одновременно.

Спасибо за вашу помощь.

...