1

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

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

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

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

在此先感谢 - 帕特里克

4

1 回答 1

1

我认为您不能在模型级别执行此操作,因为用户无法访问模型的保存方法。无需用户参与即可保存模型(例如,通过 celery 等任务管理应用程序)。但是,用户在HttpRequest传递给视图的对象上可用,因此您可以在视图中执行此操作。

def your_view(request):
    # get your object
    obj.modified = request.user.username
    obj.save()

django 上还有一个可以覆盖的save_model函数。ModelAdmin就像是 -

def save_model(self, request, obj, form, change):
    obj.modified = request.user.username
    obj.save()
于 2013-02-23T16:01:20.310 回答