2016-07-25 28 views
1

Kann nicht herausfinden, wie dieser FehlerDjango: Reverse für 'Löschen' mit Argumenten '(49,)' und Schlüsselwortargumente '{}' nicht gefunden. 1 Muster (n) versucht: [ 'tidbit/delete_tidbit /']

Hier ist der urls.py Schnipsel zu lösen:

urlpatterns = [ 
    ... 
    url(r'^delete_tidbit/', views.delete_tidbit, name='delete'), 
    ... 
] 

Aussicht:

def delete_tidbit(request, pk): 
    tidbit = Tidbit.objects.get(pk=pk) 
    tidbit.delete() 
    return HttpResponseRedirect(request.META.get('HTTP_REFERER')) 

Und der Teil der Vorlage, die diesen Fehler auslöst:

<a href="{% url 'delete' tidbit.pk %}"> 

Antwort

2

Die Frage ist hier:

url(r'^delete_tidbit/', views.delete_tidbit, name='delete'), 

Diese URL kein Argument nicht akzeptiert, wo, wie Sie versuchen, eine davon zu geben.

Versuchen Sie stattdessen:

url(r'^delete_tidbit/(?P<pk>.*)', views.delete_tidbit, name='delete'), 

Aber Vorsicht: Sie GET-Anfragen akzeptieren Objekte in der Datenbank zu löschen, jeder Crawler über diese Links kommen kann versuchen, sie zu folgen und versehentlich löschen Sie Ihre Daten. Erwägen Sie, ein GET zu verwenden, das ein zu versendendes Formular bereitstellt, um sicherzustellen, dass ein tatsächlicher Benutzer die Aktion ausführt.

+0

Perfekt. Und danke, das werde ich mir bestimmt anschauen. – conjenks