Я работаю над панелью управления, где администратор может получить все данные, хранящиеся в 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">× </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, потому что она работает нормально, я хочу обновить идентификатор одного узла, когда нажимаю кнопку деактивации, но не обновляю все узлы одновременно.
Спасибо за вашу помощь.