ha2*_*109 3 django django-admin
我正在django中写一个动作.我现在想要通过动作更新的行或说行的id字段.我想记录所有动作.
我有一个具有3个值的字段状态:'激活','待定','拒绝'.我已经采取行动将状态更改为激活.当我执行操作时,我希望更新行的日志,以便我需要一些可以存储在日志中的值,例如与该行相对应的id
据我所知,您希望使用自定义操作为您更新的对象创建一个管理日志条目.我实际上做了类似的事情,纯粹就像django那样.作为您的自定义操作,您可以添加这段代码.
编辑:操作完成后调用此函数,或者我应该说,在更改状态并保存对象后调用此函数.
def log_it(request, object, change_message):
"""
Log this activity
"""
from django.contrib.admin.models import LogEntry
from django.contrib.contenttypes.models import ContentType
LogEntry.objects.log_action(
user_id = request.user.id,
content_type_id = ContentType.objects.get_for_model(object).pk,
object_id = object.pk,
object_repr = change_message, # Message you want to show in admin action list
change_message = change_message, # I used same
action_flag = 4
)
# call it after you save your object
log_it(request, status_obj, "Status %s activated" % status_obj.pk)
Run Code Online (Sandbox Code Playgroud)
您始终可以通过获取LogEntry对象来获取更新的对象
log_entry = LogEntry.objects.filter(action_flag=4)[:1]
log_entry[0].get_admin_url()
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
2375 次 |
| 最近记录: |