Как удалить данные из базы данных с помощью кнопки, используя только DJANGO python, java script и HTML?
Я работаю над проектом django, где моя база данных заполняется из вызова post, и для качества жизни я хочу иметь возможность очистить ВСЕ данные из базы данных одним нажатием кнопки. Если это возможно, я бы хотел использовать только python, javascript и HTML. Я немного поискал здесь и пока не нашел ни одного подобного вопроса с ответом. Вот ссылка на похожий вопрос без ответа. Есть вопрос, похожий на мой, но ОП использует PHP, jquery и SQL, что не идеально для меня. Я не пробовал писать код, потому что не знаю, с чего начать. Если у кого-нибудь есть знания о таких вещах, буду очень признателен, если вы подскажете мне, с чего начать.
Что касается рендеринга моей таблицы, я использую следующий html-код:
<table id="mytable" border="1" cellpadding="2">
<thead>
<th>Src_Fname</th>
<th>Dest_Fname</th>
<th>Bytes_Xfer</th>
<th>Xfer_Sec</th>
<th>Xfer_MBPS</th>
</thead>
<tbody id="tablebody">
{% for ftp in filetp %}
<tr>
<td>{{ ftp.Src_Fname }}</td>
<td>{{ ftp.Dest_Fname }}</td>
<td>{{ ftp.Bytes_Xfer }}</td>
<td>{{ ftp.Xfer_Sec }}</td>
<td>{{ ftp.Xfer_MBPS }}</td>
</tr>
{% endfor %}
</tbody>
</table>
А вот определение рендеринга бэкенда в моем views.py
def ftptable(request):
filetp = FTP.objects.all()
return render(request,'ftp.html',{'filetp':filetp})
Мой объект FTP - это просто класс, в котором все переменные из HTML-кода заданы как поля char.
Для этого я бы просто сделал POST-запрос и передал заголовок "button" с именем типа "Delete All". Затем в вашем представлении вы можете поместить что-то вроде if request.method == "POST" and button == "Delete All":
, чтобы найти, когда кнопка нажата. Что-то вроде:
В вашем шаблоне -
<script>
$.ajax({
url: '//' + "/",
type: 'POST',
headers: {'X-CSRFtoken': '{{ csrf_token }}', 'button':'Delete_All'},
data: dict,
dataType: 'json'
})
</script>
Здесь вам нужно будет ввести ваш URL, так как я не смог извлечь его из вашего кода выше
Тогда, по вашему мнению -
if request.method == "POST":
button = request.headers.get('Button')
if button == "Delete_All":
models = [list of all models here]
for model in models:
model.objects.all().delete
Это должно работать довольно хорошо для простого стирания всего в вашей базе данных, однако это не сбросит автоинкрементирующие идентификаторы. Не знаю, как устроено остальное приложение, так что если вам нужно более полное удаление данных, просто скажите об этом.