Мой пост DeleteView возвращает ошибку Page not found (404)
.Мне не понятно, почему.
url.py
path('<int:pk>/<int:yr>/<int:id>/deleteit/', views.DeleteIt.as_view(), name='delete-it'),
view.py
class DeleteIt(DeleteView):
model = MyModel
def get_success_url(self):
client_id = self.object.client_id
year_id = self.object.year_id
return reverse_lazy('itemview', kwargs = {'pk': client_id, 'yr': year_id})
шаблоны - - POSTing template
<form action="{% url 'delete-it' pk=url_pk yr=url_yr id=item_id %}" method="post" style="display: inline;">
[Ключи pk
и yr
взяты из генератора контекста.] Поэтому, когда я делаю запрос post
из моего шаблона, URL-адрес
http://127.0.0.1:8000/MyApp/1/1/3/deleteit/
URL-адрес /pk/yr/id/
где id
- идентификатор объекта MyModel в базе данных.Объект существует, и у него есть все правильные ключи.Когда я делаю POST, объект не удаляется (что, по моему мнению, является результатом отсутствия успешного вызова URL для удаления.
Нет трассировки ошибок, но консоль говорит:
[23/May/2018 22:53:32] "GET /MyApp/1/1/ HTTP/1.1" 200 13946
Not Found: /MyApp/1/1/3/deleteit/
[23/May/2018 22:55:10] "POST /MyApp/1/1/3/deleteit/ HTTP/1.1" 404 1797
Насколько я понимаю, get_success_url
не вызывается из-за ошибки. DeleteView кажется очень прямым - поэтому не уверен, как он закодирован неправильно.
Любые мысли приветствуются.