请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

如何自动添加编写人?

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

正在回答 回答被采纳积分+3

2回答

bobby 2017-03-29 16:25:18
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 回复 有任何疑惑可以回复我~
bobby 2017-03-29 11:01:18

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

0 回复 有任何疑惑可以回复我~
  • 提问者 慕移动5462860 #1
    是“后台管理系统”中每个记录中添加操作者。前台的我知道,通过request.user就可以获得。但后台的话没有request吧。我是参照add_time=models.DateTimeField(default=datetime.now)写法,想给当前操作者添加一个字段,不知道如何加。你说的重载save,是去哪里获得当前管理员的username呢?
    回复 有任何疑惑可以回复我~ 2017-03-29 11:34:04
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信