如何自动添加编写人?

来源:8-6 课程评论评论功能

慕移动5462860

2017-03-29

老师,我想在每个models中增加一个“编写人”的字段,如add_time一样,每次新增课程时就自动将后台当前登录的管理员添加进来,方便日后审计。请问怎么弄才好?

写回答

2回答

bobby

2017-03-29

def save_models(self):
        new_obj = self.new_obj
        if new_obj.pk is not None:
            old_obj = Contract.objects.get(id=new_obj.pk)
            if old_obj.check_status != new_obj.check_status:
                if new_obj.check_status == 1 and old_obj.check_status in [-1,0]:
                    new_obj.check_user = self.request.user
这个是要写到你的adminx文件对应的admin下面, 我只贴这部分代码 你应该能看懂吧 里面有取user的代码


0
0

bobby

2017-03-29

我不太明白你的需求 你是想用户操作的时候 记录用户的user还是想在后台管理系统中每个记录中添加操作者, 如果是后台管理系统你直接重载admin的save方法就可以了 如果是前台用户操作 一般都是要自己去获取user, 你也可以了解一下如何通过django的post_save信号量去完成, 但是可能会有些难度

0
1
慕移动5462860
是“后台管理系统”中每个记录中添加操作者。前台的我知道,通过request.user就可以获得。但后台的话没有request吧。我是参照add_time=models.DateTimeField(default=datetime.now)写法,想给当前操作者添加一个字段,不知道如何加。你说的重载save,是去哪里获得当前管理员的username呢?
2017-03-29
共1条回复

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

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

3677 学习 · 4038 问题

查看课程