Python 如何使用'construct_change_message'在我自己的视图中创建一个'change_message',在django中的内置'LogEntry'模型中记录我的操作
我在视图中添加了一个代码,用于在我的“添加新员工”页面中记录每个Python 如何使用'construct_change_message'在我自己的视图中创建一个'change_message',在django中的内置'LogEntry'模型中记录我的操作,python,django,Python,Django,我在视图中添加了一个代码,用于在我的“添加新员工”页面中记录每个添加操作。代码如下: message = f'New user added. Added staff profile for {user.first_name} {user.last_name}' log = LogEntry.objects.log_action( user_id=request.user.id, co
添加操作。代码如下:
message = f'New user added. Added staff profile for {user.first_name} {user.last_name}'
log = LogEntry.objects.log_action(
user_id=request.user.id,
content_type_id=ContentType.objects.get_for_model(user).pk,
object_id=repr(user.id),
# or any field you wish to represent here
object_repr=repr(user.username),
action_flag=ADDITION, # assuming it's a new object
change_message=message,) # a new user has been added
log.save()
在这里,我只通过message
string定制了一个get消息。我认为,对于这个add\u staff\u view
来说,这样做是可以的。但是现在,我正在处理我的ProfileUpdateView
,而且,我需要记录这个CHANGE
操作。我看到django admin中的change/update页面如何在LogEntry模型中插入change\u消息(它显示哪些字段被更改/更新),我想不出在我自己的ProfileUpdateView
中做这件事的方法
这是我的档案更新视图
:
@login_required
def ProfileUpdateView(request):
if request.method == 'POST':
user_form = accounts_forms.UserUpdateForm(request.POST, instance=request.user)
if request.user.is_staff == True:
profile_form = accounts_forms.StaffProfileUpdateForm(
request.POST, instance=request.user.staffprofile)
else:
profile_form = accounts_forms.StudentProfileUpdateForm(
request.POST, instance=request.user.studentprofile)
if user_form.is_valid() and profile_form.is_valid():
user_form.save()
profile_form.save()
log = LogEntry.objects.log_action(
user_id=request.user.id,
content_type_id=ContentType.objects.get_for_model(user).pk,
object_id=repr(user.id),
object_repr=str(user.username),
action_flag=CHANGE,
change_message = 'IM STUCK HERE',)
log.save()
messages.success(request, 'Your profile has been updated.')
return redirect('update-profile')
else:
user_form = accounts_forms.UserUpdateForm(instance=request.user)
if request.user.is_staff == True:
profile_form = accounts_forms.StaffProfileUpdateForm(instance=request.user.staffprofile)
else:
profile_form = accounts_forms.StudentProfileUpdateForm(
instance=request.user.studentprofile)
context = {
'user_form': user_form,
'profile_form': profile_form,
}
return render(request, 'accounts/update_profile.html', context)
非常感谢您的帮助,谢谢