解决了好几天的关于django xadmin后台增加链接并执行函数的问题

由于xadmin后台封装的完整性,想要在后台做一些改动对于新手来说还是有点困难,目前解决的第一个问题:

在admin后台增加链接,使其改变上级签收状态

如图

点击签收按钮之后,改变其状态

代码展示:

1.增加新的一列作为链接

 # 显示新的一列为链接
    def qianshou(self, content):
        from django.utils.safestring import mark_safe
        return mark_safe("<a href='signNotice/%s'>签收</a>" % content.id) #content.id是当前记录对应的ID

    qianshou.short_description = '操作'

主要是<a>标签的路径以及content.id的获取

2.在Notice所在目录下建立urls.py的文件,添加路径

添加路径:

from django.conf.urls import url
from . import views
urlpatterns = [
    url(r'^noticesuperiorassign/signNotice/(d+)$',views.sign_notice, name='sign_notice')   #签收公告的路径
    ]

别忘了在总的urls.py文件下添加路径

url(r'^Notice/', include('Notice.urls', namespace='Notice')),

3.在views.py中添加函数,调用adminx.py中的函数

# 签收公告
def sign_notice(Files,request):
    NoticeSuperiorAssignAdmin.qianshou_notice(request)
    return redirect('../')

4.adminx.py中修改签收状态的函数

# 签收公告
    def qianshou_notice(request):
        qs = NoticeSuperiorAssign.objects.get(id=request)
        qs.assign_notice_state = '2'
        qs.save()
原文地址:https://www.cnblogs.com/ttzz/p/10688816.html