В моем проекте есть простой сигнал, который проверяет, какие поля были обновлены в форме. Мне также нужно проверить пользователя, который изменил данные в этих полях.
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.