【发布时间】:2019-10-24 16:53:02
【问题描述】:
我的项目中有一个简单的信号,用于检查表单中哪些字段已更新。我还需要检查在这些字段中更改数据的用户。
Request.user 似乎在这里不起作用。
@receiver(sender=BackOperator, signal=pre_save)
def change_log(**kwargs):
instance = kwargs['instance']
try:
original_object = BackOperator.objects.using('operator').get(pk=instance.pk)
except:
return
if original_object:
field_names = [field.name for field in original_object._meta.fields]
for field in field_names:
try:
ori_field = getattr(original_object, field)
new_field = getattr(instance, field)
message = (field + ": " + str(ori_field) + " changed to: " + str(new_field))
if ori_field != new_field:
BackNote.objects.using('operator').\
create(operator=instance.pk, note=message)
except:
return
我想将用户的用户名作为字符串添加到消息中,该字符串保存在 BackNote 表中。
【问题讨论】:
标签: python django django-signals django-1.8