将当前用户名添加到Django模型中的“user”字段

时间:2013-02-23 15:35:44

标签: django model

我正在使用遗留数据库,其中所有表中都有'adduid'和'moduid'字段。这些字段是varchar(64)。

这些记录在保存和修改时使用实际用户ID标记记录。当然,当使用django时,这些字段会填充django db用户。

我想要的是一种用登录用户填充这些字段的方法;最好是在模型定义中。

我该怎么做? (我见过的大多数解决方案都依赖于使用User表的外键;但是我们需要该字段中用户名的实际文本 - 而不是fk。)

提前谢谢 - 帕特里克

1 个答案:

答案 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()