1、django后台admin不知道有多少人在用,很多人都喜欢用别的如xadmin等,但是我这人比较懒,能少动就少动,今天给后台添加一个自定义删除功能。
2、自己写路由,不,懒,其实admin是自带删除的
其实你可以看现在有的有那些路由,
print(request.get_raw_uri())
最后输出
[<URLPattern '' [name='eiapdf_file_changelist']>, <URLPattern 'add/' [name='eiapdf_file_add']>, <URLPattern '<path:object_id>/history/' [name='eiapdf_file_history']>, <URLPattern '<pat
h:object_id>/delete/' [name='eiapdf_file_delete']>, <URLPattern '<path:object_id>/change/' [name='eiapdf_file_change']>, <URLPattern '<path:object_id>/'>]
[<URLPattern '' [name='eiapdf_file_changelist']>, <URLPattern 'add/' [name='eiapdf_file_add']>, <URLPattern '<path:object_id>/history/' [name='eiapdf_file_history']>, <URLPattern '<pat
h:object_id>/delete/' [name='eiapdf_file_delete']>, <URLPattern '<path:object_id>/change/' [name='eiapdf_file_change']>, <URLPattern '<path:object_id>/'>]
我们发现有删除路由,对于admin后台的规则是
http://127.0.0.1:9000/admin/eiapdf/file/10/delete/
大家会发现规律是admin:代表admin后台,eiaodf:是我们自己创建的app名,10:是要删除记录的id,delete:是代表删除。
3.修改model.py
# 自定义字段 list_display += ["delete_file"] def delete_file(self, obj): from django.utils.safestring import mark_safe return mark_safe(f"<a href='/admin/eiapdf/file/{obj.id}/delete/' target='_blank' style='color:red'>删除</a>") delete_file.short_description = '操作' delete_file.allow_tags = True
4.启动并运行就行了