django - I have a TemplateDoesNotExist error. I can update my models but not delete them? -
i'm making first django site has 1 app far named clients , keep templates in project_name/clients/templates/clients.
like title says i'm able update instance of model client using updateview in views file , thought able delete instance in same way using deleteview error stated previously. appreciated. i've seen other similar posts nothing helped me solve problem
here's url file:
from django.conf.urls import url . import views app_name = 'clients' url(r'^$', views.indexview.as_view(), name='index'), # /clients/11/... number url(r'^(?p<pk>[0-9]+)/$', views.detailview.as_view(), name='detail'), # /clients/viewed/ url(r'^viewed/', views.viewed, name='viewed'), # /clients/add/ url(r'^add/$', views.clientcreate.as_view(), name='client-add'), # /clients/3/update/ url(r'^(?p<pk>[0-9]+)/update$', views.clientupdate.as_view(), name='client-update'), # /clients/8/delete/ url(r'^(?p<pk>[0-9]+)/delete/$', views.clientdelete.as_view(), name='client-delete'), ] here's relevant classes in views.py:
from __future__ import unicode_literals django.views import generic django.views.generic.edit import createview, updateview, deleteview django.core.urlresolvers import reverse_lazy django.shortcuts import render .models import client class clientupdate(updateview): model = client fields = ['name', 'age', 'height', 'weight', 'history_of_head_trauma', 'profession', 'is_athlete', 'email'] success_url = reverse_lazy('clients:index') class clientdelete(deleteview): model = client success_url = reverse_lazy('clients:index') here's div in index.html holds both buttons updating , deleting:
<div class="panel-footer"> <a type="button" class="btn btn-sm btn-success"><i class="glyphicon glyphicon-envelope"></i></a> <span class="pull-right"> <a href="{% url 'clients:client-update' pk=client.id %}" type="button" class="btn btn-small btn-info"><i class="glyphicon glyphicon-edit"></i></a> <a href="{% url 'clients:client-delete' pk=client.id %}" type="button" class="btn btn-small btn-danger"><i class="glyphicon glyphicon-remove"></i></a> </span> </div>
by default, deleteview shows confirmation page requests, , deletes object post requests. need create template clients/client_confirm_delete.html (or set template_name on view) handle requests. there example template in docs:
<form action="" method="post">{% csrf_token %} <p>are sure want delete "{{ object }}"?</p> <input type="submit" value="confirm" /> </form> your other option add form index page, users submit post request delete page. note means object deleted without confirmation. if this, might idea add template requests, otherwise errors when users/bots navigate directly delete url.
Comments
Post a Comment