python - 如何在 Django Admin 的自定义方法中获取当前用户?

标签 python django django-admin

所以,我有这段代码

class PostAdmin(models.ModelAdmin):
    # ...
    def display_confirm_button(self, obj):
        # some code
    # ...

display_confirm_button方法如何获取当前用户?

最佳答案

class PostAdmin(models.ModelAdmin):
    # ...
    def display_confirm_button(self, obj):
        # some code
    # ...

要访问登录用户,您需要访问请求对象。无法在您的 display_confirm_button 方法中访问请求,因为您只能访问 obj,即正在编辑的对象。

解决方案是覆盖 get_list_display,它可以访问 request 对象。然后,您可以定义您的 display_confirm_button inside get_list_display,它可以访问该请求,并在您返回的列表中包含可调用的 display_confirm_button

class MyModelAdmin(admin.ModelAdmin):
    def get_list_display(self, request):

        def display_confirm_button(obj):
            out = logic_that_requires_user(request.user)
            return out

        return ['field1', 'field2', display_confirm_button, ...]

关于python - 如何在 Django Admin 的自定义方法中获取当前用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35336455/

相关文章:

django-admin - Django Admin中 ListView 和更改 View 的不同查询集优化

python - 无法解析余数 : '!=None' from '!=None' | Django Admin

python - 将复合名词与基本名词分开第 2 部分

python - 是否可以对 OuterRef 表达式进行算术运算?

python - Docker、Supervisord 和日志记录 - 如何在 docker 日志中整合日志?

python - 是否可以从 Django 管理页面禁用缓存?

python - 为什么不在 Pytorch 中使用 super().__init__(Model,self)

python - glDrawPixels 和 numpy 问题

python - PyTorch 相当于 numpy reshape 函数

django - 在 Travis 上运行 django unittests 时如何解决 "psycopg2.errors.UndefinedTable: relation "auth_user“不存在”