xadmin model筛选字段的choices

来源:4-5 自定义userprofile

慕粉2023095444

2019-01-07

class OrderListAdmin(object):
	list_display = ('id','subuser',‘orderuser’,'appname','serverelease','odertype','uplinests','orderappname')
	
	
 def formfield_for_dbfield(self,db_field, **kwargs,):

        if db_field.name == "uplinests":
            kwargs['choices'] = (
                ('remove', '已废弃'),
                ('Pending', '待审批'),
            )
            if self.request.user.username == '工单的审批人':

                kwargs['choices'] += (('approval', '已审批'),)

        return super().formfield_for_dbfield(db_field, **kwargs)

这里要获取当前数据的工单审批人,就是orderuser的值.一直找不到方法。

写回答

2回答

bobby

2019-01-12

//img.mukewang.com/szimg/5c39a0fb00019c9005960271.jpg 这是我这里写的一个逻辑,这个是在xadmin保存的逻辑的拦击,这里只要不调用obj.save()就不会保存,所以你只需要在save前修改你的逻辑然后再调用save方法就行了

0
0

慕粉2023095444

提问者

2019-01-07

根据当前的登录用户,来显示model字段的choices选项,就是想实现 self.request.user.is_superuser 之类的判断,不过标准不是是不是超级用户,而是是不是该工单的审批人。

0
2
慕粉2023095444
回复
bobby
这个应该是在save之前显示的,要根据登录用户是不是审批人来动态改写工单状态的choices的列表。这个怎么实现呢?
2019-01-09
共2条回复

Python3.6+django+xadmin,打造在线教育平台

【毕设】Python 2.7到3.6 完美适配,Django升级2.0

3677 学习 · 4038 问题

查看课程