Hi everyone, I recently reviewed the off-django documentation and decided to master deleting data from the database using the POST method (I know that there is such a thing as Form in django, but I want to try it first myself). Actually when I load the page I get the following error:
Reverse for 'delete' with arguments '(' ',)' and keyword arguments '{}' not found. 1 pattern (s) tried: ['$ delete / $']
Here's the content: views.py from django.shortcuts import render from django.http import HttpResponseRedirect, HttpResponse from .models import News
from django.core.urlresolvers import reverse # Create your views here. def news(request): listNews = News.objects.all() context = {'listNews': listNews} return render(request, 'news/index.html', context) def delete(request): delNews = request.POST['news'] d = News.objects.filter(id=delNews).delete() return reverse('news:delete', kwargs={'news.id'})
urls.py
from django.conf.urls import url from . import views app_name='news' urlpatterns = [ url(r'^$', views.news, name='news'), url(r'^delete/$', views.delete, name='delete'), ]
index.html
{% if listNews %} <form action="{% url 'news:delete' news.id %}" method="post"> {% for news in listNews %} {% csrf_token %} <h4>{{news.title}}</h4> {{news.text}} {{news.author}} {{news.date}} <input type="text" name="news" id="news{{ forloop.counter }}" value="{{ news.id }}" /> <input type="submit" /> {% endfor %} </form> <p>No news avaliable</p> {% endif %}
PS I realize that there may be some other kind of mistakes here, I would be very grateful if you could help me.