我有一个相对简单的覆盖save_model
方法,如下所示:
def save_model(self, request, obj, form, change):
if not change:
obj.created_by = request.user
obj.last_modified_by = request.user
else:
obj.last_modified_by = request.user
obj.save()
创建新记录(not change
)时,它会使用用户名字符串填充obj.created_by
,但使用用户ID字符串填充obj.last_modified_by
。我可以通过简单地使用request.user.username
而不仅仅是request.user
来解决这个问题,但对我来说这很不一致:它不一致:
Carl的用户ID为1。
如果您想知道模型中如何设计created_by
和last_modified_by
,它们只是CharField
的(不是 {{1} }的):
ForeignKey
为什么不一致?
答案 0 :(得分:2)
你自己说的。
如果您想知道如何在模型中设计created_by和last_modified_by,它们只是CharField(而不是ForeignKey' s):
但是request.user
是一个实际的用户实例(不是CharField
)。所以你用错误的东西设置字段。
您可能希望执行obj.created_by = request.user.username
之类的操作。