【问题标题】:How to display manual action to "History" in admin django?如何在admin django中显示对“历史”的手动操作?
【发布时间】:2020-02-27 15:01:09
【问题描述】:

我遵循了这个教程:https://docs.djangoproject.com/en/2.2/ref/contrib/admin/actions/

而且我在历史记录中看不到有关此操作的日志。(但已更改,.. django 管理员的默认操作可以在那里显示博客)

如何将日志添加到“用户_1 发布”之类的历史记录?非常感谢。

【问题讨论】:

    标签: django django-models django-admin-actions


    【解决方案1】:

    您可以像这样在管理页面中创建一个简单的日志条目部分:

    admin.py:

    from django.contrib import admin
    
    
    class LogEntryAdmin(admin.ModelAdmin):
        list_display = ('id', 'get_string', 'action_time', 'object_id')
        actions = None
    
        def get_string(self, obj):
            return str(obj)
    
        search_fields = ['=user__username', ]
        fieldsets = [
            (None, {'fields':()}), 
            ]
    
        def __init__(self, *args, **kwargs):
            super(LogEntryAdmin, self).__init__(*args, **kwargs)
            self.list_display_links = None
    
    admin.site.register(admin.models.LogEntry, LogEntryAdmin)
    

    它可以显示对数据所做的每一个更改的页面,从管理页面形成用户

    【讨论】:

    • 非常感谢。但是昨天试过了,我对我的东西有了答案。我只是使用 Post.objects.update(changed_by=request.user) 之类的东西。并将其添加到我创建的 def 函数中。 ^^ 它会像触发器一样工作。但是谢谢你的评论
    • 是的,这也是一种方法,但它涉及更改我不支持的模型,因为它会影响使用该模型的其他功能
    猜你喜欢
    • 2014-08-28
    • 2011-08-10
    • 2022-08-12
    • 2016-09-16
    • 2010-11-02
    • 2020-09-29
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    相关资源
    最近更新 更多