На прошлой неделе я начал кодирование с помощью Python и Django, и теперь я начинаю отчаянно беспокоиться об этом. Мне нужно работать с To-Do-List и вы хотите удалить задачу ToDo, нажав кнопку рядом с задачей. Теперь я всегда получаюNoReverse Match at Delete View
NoReverseMatch в/удалить/1
ошибка :(
delete_confirm.html:
{% extends "base_page.html" %}
{% block title %}Confirm Todo delete{% endblock %}
{% block content %}
<form action="" method="post">{% csrf_token %}
<p>Are you sure you want to delete "{{ object }}"?</p>
<input type="submit" value="Confirm" />
</form>
{% endblock %}
Мои Urls.py:
from django.conf.urls import patterns, url
from todolist import views
urlpatterns = patterns('',
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^add', views.AddView.as_view(), name='add'),
url(r'^impressum', views.ImpressumView.as_view(), name='impressum'),
url(r'^edit/(?P<pk>\d+)$', views.UpdateView.as_view(), name='todo_edit'),
url(r'^delete/(?P<pk>\d+)', views.DeleteView.as_view(), name='todo_delete'),
)
views.py:
from django.shortcuts import render
from django.core.urlresolvers import reverse_lazy
from django.http import HttpResponse
from django.views import generic
from django.views.generic import TemplateView, ListView, CreateView, UpdateView, DeleteView
from todolist.models import Todo
# Create your views here.
class IndexView(ListView):
template_name = 'index.html'
model = Todo
class ImpressumView(TemplateView):
template_name = 'impressum.html'
class AddView(CreateView):
template_name = 'add.html'
model = Todo
fields = ['title','deadline','progress']
success_url = '/'
class UpdateView(UpdateView):
template_name = 'edit.html'
model = Todo
fields = ['title','deadline','progress']
success_url = '/'
class DeleteView(DeleteView):
template_name = 'delete_confirm.html'
model = Todo
success_url = reverse_lazy('/')
Интересная часть index.html:
<!--Table content-->
{% for todo in object_list %}
<tr>
<td class="text-left">{{todo.title}}</td>
<td> {{todo.deadline}}</td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="{{todo.progress}}" aria-valuemin="0" aria-valuemax="100" style="width: {{todo.progress}}%">
{{todo.progress}}%
</div>
</div>
</td>
<td >
<div class="btn-group">
<a href="edit/{{todo.id}}" role="button" class="btn btn-default">Edit</a>
<a href="delete/{{todo.id}}" role="button" class="btn btn-default">Delete</a>
<button class="btn btn-default" data-toggle="tooltip" title="Done?" data-placement="right"><span class="glyphicon glyphicon-check"></button>
</div>
</td>
{% endfor %}
было бы здорово, если некоторые из ваших ребят может помочь новичку :)
Для будущих вопросов, просьба представить полную отслеживающий, он будет содержать полезную информацию, такую как строка, на которой произошла ошибка. – Alasdair
Как в стороне, было бы лучше использовать тег ['url'] (https://docs.djangoproject.com/en/1.8/ref/templates/builtins/#url), например. '{% url 'todo_edit' todo.id%}' и '{% url 'todo_delete' todo.id%}' вместо жесткого кодирования URL-адресов и 'edit/{{todo.id}}' и 'delete/{{ todo.id}} 'в вашем шаблоне. – Alasdair
, если вы не возражаете, пожалуйста, обновите свой вопрос с учетом всей полученной ошибки. – Yeo