Django: Как я могу удалить определенные записи из таблиц, используя представление, шаблон и подтвердить в JavaScript в django-шаблоне? - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть модель с именем Actie в models.py.

Переданный мной контекст: {'actie': Actie.objects.all (), 'user': request.user}

Это мой шаблон, который я визуализировал с помощью вида:

{% for actie in actie %}
            {% if actie.actie_gebruiker.id == user.id %}
                <tr onclick="window.location.href={{ actie.id }}">
                    <td>{{ actie.id }}</td>
                    <td>{{ actie.actie_naam }}</td>
                    <td>{{ actie.actie_status.status_naam }}</td>
                    <td>{{ actie.actie_aanmaakdatum|date:"d-m-y [ H:i ]" }}</td>
                    <td>{{ actie.actie_einddatum|date:"d-m-y" }}</td>
                    <td>{{ actie.actie_eindtijdstip|date:"[ H:i ]" }}</td>
                    <td>{{ actie.actie_gebruiker }}</td>
                </tr>
                <a id="verwijderenButton" href="" onclick="bevestigVerwijdering({{ actie_id }});"><img class="icontje"
                                                                                         src="{% static 'MyApp/verwijderen.png' %}"></a>
            {% endif %}
        {% endfor %}
{% endif %}
{% endfor %}
<script>
    function bevestigVerwijdering(id) {
        var actie_id = '{{ actie.id }}';
        var antwoord = confirm("Weet u zeker dat u deze actie wilt verwijderen?");
        if (antwoord == true) {
            document.getElementById('verwijderenButton').href = 'verwijderen/' + id + '/';
            alert(id);
            alert(document.getElementById('verwijderenButton').href);
            //window.location.href= 'verwijderen/' + id + '/';
        }
    }
</script>

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

Он ничего не удаляет, когда я не нажимаю на первую запись, но удаляет последнюю запись, когда я нажимаю на первую запись.

Это мой взгляд:

def verwijderActie(request, id):
    Actie.objects.filter(id=id).delete()
    return HttpResponseRedirect('../../')

1 Ответ

0 голосов
/ 21 ноября 2018

Вы создаете список элементов с одинаковым идентификатором, затем, когда вы вызываете функцию javascript, она получает первый элемент с вызванным идентификатором.

Я бы сделал что-то подобное:

{% for actie in actie %}
    {% if actie.actie_gebruiker.id == user.id %}
        <tr onclick="window.location.href={{ actie.id }}">
            <td>{{ actie.id }}</td>
            <td>{{ actie.actie_naam }}</td>
            <td>{{ actie.actie_status.status_naam }}</td>
            <td>{{ actie.actie_aanmaakdatum|date:"d-m-y [ H:i ]" }}</td>
            <td>{{ actie.actie_einddatum|date:"d-m-y" }}</td>
            <td>{{ actie.actie_eindtijdstip|date:"[ H:i ]" }}</td>
            <td>{{ actie.actie_gebruiker }}</td>
        </tr>
        <a id="verwijderenButton_{{ actie.id }}" href="#" onclick="bevestigVerwijdering({{ actie.id }});return false;"><img class="icontje" src="{% static 'MyApp/verwijderen.png' %}"></a>
    {% endif %}
{% endfor %}
<script>
    function bevestigVerwijdering(id) {
        var actie_id = id;
        var antwoord = confirm("Weet u zeker dat u deze actie wilt verwijderen?");
        if (antwoord == true) {
            document.getElementById('verwijderenButton_'+id).href = 'verwijderen/' + id + '/';
            alert(id);
            alert(document.getElementById('verwijderenButton').href);
            //window.location.href= 'verwijderen/' + id + '/';
       }
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...