I need to add a button to the column of the Django Admin table which will delete the record. A button must be in each entry.

models.py

class Worker (models.Model): name = models.CharField ('Name', max_length=30) surname = models.CharField ('Surname', max_length=30) 

admin.py

 class WorkerAdmin (admin.ModelAdmin): list_display = ('surname', 'name') search_fields = ('surname', 'name') list_filter = ('surname', 'name') admin.site.register(Worker, WorkerAdmin) 

    1 answer 1

     from django.contrib import admin from django.core.urlresolvers import reverse @admin.register(Worker) class WorkerAdmin(admin.ModelAdmin): list_display = ('surname', 'name', 'remove_button') search_fields = ('surname', 'name') list_filter = ('surname', 'name') def remove_button(self, obj): return '<a class="button" href="{}">Delete</a>'.format(reverse('admin:workers_worker_delete', args=[obj.pk])) remove_button.short_description = '' remove_button.allow_tags = True 
    • gives the error NoReverseMatch at /admin/zpapp/worker/ Reverse for 'workers_worker_delete' with arguments '(1,)' and keyword arguments '{}' not found. 0 pattern(s) tried: [] NoReverseMatch at /admin/zpapp/worker/ Reverse for 'workers_worker_delete' with arguments '(1,)' and keyword arguments '{}' not found. 0 pattern(s) tried: [] - John
    • Change admin:workers_worker_delete to admin:zpapp_worker_delete - Sergey Gornostaev
    • Thank you so much! - John