Ich habe ein Projekt mit einem Post-Modell, das ist grundlegende Beiträge. Ich möchte auf jeder Post-Seite einen Link erstellen, um diesen Beitrag löschen zu können (mit entsprechender Sicherheit).Löschen von Objekten in Django über HTML-Link
Es gibt ein paar Fragen zu diesem On-Stack-Überlauf, aber ich kann keine vollständige, praktikable Antwort finden (ich benutze Django 1.7), die keine Fehler hervorbringt, wenn ich sie implementiere.
Ich konnte eine Löschfunktion implementieren, die funktioniert, aber Sie müssen ein POST-Formular mit CSRF-Token für die Überprüfung hinzufügen, und überprüfen Sie auch, dass der Benutzer löschen es ist, der es erstellt hat. Ich kann nicht scheinen, herauszufinden, wie sich diese beiden in
Bisher in meinem views.py hinzuzufügen:.
def delete(request, id):
post = Post.objects.filter(pk=id).delete()
return HttpResponseRedirect(reverse('posts.views.all_posts'))
In urls.py:
url(r'^delete/(?P<id>\d+)/$','posts.views.delete'),
In html:
<a href="/delete/{{ post.id }}">Delete</a>
Das alles funktioniert, aber es gibt keine Sicherheit - so schätzen Anleitung, wie Sie ein Formular hinzufügen und überprüfen.
Außerdem habe ich eine Antwort gesehen, die DeleteView verwendet, aber auch nicht funktionieren konnte.
Ich möchte nur klären, ob die Benutzer müssen angemeldet sein, um alle Beiträge sehen zu können? – catherine