我正在使用一个遗留数据库,其中所有表中都有“adduid”和“moduid”字段。这些字段是 varchar(64)。
这些在保存和修改时用实际的用户 ID 标记记录。当然,当使用 django 时,这些字段由 django db 用户填充。
我想要的是一种用登录用户填充这些字段的方法;最好在模型定义中。
我该怎么办?(我见过的大多数解决方案都依赖于对 User 表使用外键;但是我们需要该字段中用户名的实际文本 - 而不是 fk)。
在此先感谢 - 帕特里克
我认为您不能在模型级别执行此操作,因为用户无法访问模型的保存方法。无需用户参与即可保存模型(例如,通过 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()