我有一个相对简单的方法覆盖,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
用户名字符串,但填充obj.last_modified_by
用户 ID 字符串。我主要可以通过简单地使用request.user.username
而不是 just 来解决这个问题request.user
,但对我来说奇怪的是它不一致地执行此操作:
Carl 的用户 ID 为 1。
如果您想知道模型中的设计方式created_by
和last_modified_by
设计方式,它们只是CharField
's(不是 ForeignKey
's):
created_by = models.CharField(blank=False, max_length=100, editable=False)
last_modified_by = models.CharField(blank=False, max_length=100, editable=False)
为什么不一致?