Django: Supprimer la vue avec confirmation Javascript sans rediriger vers le modèle


Avarika Giri

J'ai un modèle que je peux supprimer en utilisant Django DeleteView. Je veux que les données soient supprimées après avoir utilisé le popup Javascript.

Views.py

class ObjectNameDeleteView(DeleteView):
    model = ObjectName
    form_class = PostObjectName   
    success_url = 'http://localhost:8000/impact/displayobjects/'

DisplayObjects.html

<form method="POST" action="{% url 'person_delete' obj.pk %}">
{% csrf_token %}
<a href="{% url 'person_delete' obj.pk %}">
<button type="submit" class="btn btn-danger" onClick="deleteFunction()">Delete</button></a>
</form>

<script>
        function deleteFunction(e) {
            if(!confirm("Are you sure you want to delete?")){
                e.preventDefault();
            }            
        }
</script>

Après avoir cliqué sur le bouton Supprimer, il y a une erreur:

La vérification CSRF a échoué. Demande abandonnée.

Comment puis-je faire fonctionner cela?

ThunderHorn

retirer type='submit'du bouton

ajouter une classe ou un identifiant au formulaire, puis dans l' jsajout$('#your-form-id').submit();

<form id='person-delete' method="POST" action="{% url 'person_delete' obj.pk %}">
{% csrf_token %}
<a href="{% url 'person_delete' obj.pk %}">
<button  class="btn btn-danger" onClick="deleteFunction()">Delete</button></a>
</form>


 function deleteFunction(e) {
            if(!confirm("Are you sure you want to delete?")){
                e.preventDefault();
            }else{
             $('#person-delete').submit();
            }            
        }

Votre vue est une classe que vous devez ajouter @method_decorator(csrf_exempt)avant votre logique dans votreObjectNameDeleteView()

class ObjectNameDeleteView(View):
       @method_decorator(csrf_exempt)
       #then your logic

Articles connexes


Vue d'administration Django sans modèle

Phil Sheard Désolé, je n'ai pas encore d'exemple de code car j'essaie de déterminer si ce que je pense peut même être fait. J'écris une application Django pour gérer les tâches Celery. J'utilise django-celery-beatpour les tâches planifiées mais j'aimerais une

Comment supprimer un modèle Django sans supprimer la table

Reimus Klinsman Comment puis-je supprimer un modèle Django sans affecter la table avec laquelle il fonctionne. Auparavant, nous utilisions normalement le modèle et la table, mais nous avons depuis déplacé la fonctionnalité des modèles vers un microservice qui

Supprimer la vue avec une invite de confirmation - Django

Huzaif Sayyed | Je souhaite supprimer une entreprise avec une invite de confirmation. Je ne veux pas rediriger vers un nouveau modèle. class CompanyDeleteView(LoginRequiredMixin, generic.DeleteView): model = Company template_name = 'company/company_con

Rediriger vers la vue de liste avec le numéro de page

GHS J'ai une fonction pour supprimer certains recored Je peux cliquer sur le Withdrow de la page de liste et les détails .. Donc, je veux d'abord vérifier quel est le chemin actuel afin d'y revenir après avoir affiché le message. J'ai utilisé la méthode suivan