我正在使用遗留数据库,其中所有表中都有'adduid'和'moduid'字段。这些字段是varchar(64)。
这些记录在保存和修改时使用实际用户ID标记记录。当然,当使用django时,这些字段会填充django db用户。
我想要的是一种用登录用户填充这些字段的方法;最好是在模型定义中。
我该怎么做? (我见过的大多数解决方案都依赖于使用User表的外键;但是我们需要该字段中用户名的实际文本 - 而不是fk。)
提前谢谢 - 帕特里克答案 0 :(得分:1)
我认为你不能在模型级别执行此操作,因为模型的save方法无法访问用户。可以在没有用户参与的情况下保存模型(例如,通过诸如芹菜的任务管理应用程序)。但是,用户可以在传递给视图的HttpRequest
对象上使用,因此您可以在视图中执行此操作。
def your_view(request):
# get your object
obj.modified = request.user.username
obj.save()
你可以覆盖django ModelAdmin
上的save_model函数。像 -
def save_model(self, request, obj, form, change):
obj.modified = request.user.username
obj.save()