Как удалить данные из базы данных с помощью кнопки, используя только 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

Это должно работать довольно хорошо для простого стирания всего в вашей базе данных, однако это не сбросит автоинкрементирующие идентификаторы. Не знаю, как устроено остальное приложение, так что если вам нужно более полное удаление данных, просто скажите об этом.

Вернуться на верх