django - Django:从 admin.py 访问没有请求对象的方法的用户信息?
问题描述
姜戈 1.11。
在admin.py
我有:
class AuditAdmin(DeactivateMixin, admin.ModelAdmin):
"""all the superclass stuff"""
我从中使用各种自定义方法对模型的内容进行子类化:
class SomeModelAdmin(AuditAdmin):
list_display = ["filed1", "filed2", "field3"]
def get_queryset(self, request):
if request.user.is_superuser:
#do something extra
def inline_add_somemodelattribute1(self, my_object):
#how to access user if I don't have request ?
所以在inline_add_somemodelattribute1
方法内部我需要根据用户做出决定,但该方法不request
作为参数。在这种情况下如何获取我的user
数据?我没有找到任何相关的self
或my_object
谢谢
解决方案
访问当前请求的最简单方法是使用crequest。你可以像这样使用它:
from crequest.middleware import CrequestMiddleware
class SomeModelAdmin(...):
...
def inline_add_somemodelattribute1(self, my_object):
crequest = CrequestMiddleware.get_request()
# your logics here for example: if crequest.user.pk == 1:
推荐阅读
- c# - 为同一应用程序的两个不同站点配置 web.config
- react-native - 当我在同一个应用程序中切换页面时如何保持地理定位运行?
- javascript - 从 json 和 url 检索数据
- html - 边框增加了额外的 1px
- java - 如何将 Java AES - CBC 与 PKCS5 填充更改为 PHP
- angular - 验证 mat-autocomplete 是对象
- python - 复制嵌套列表并用连续的数字填充
- django - Django Queryset 加载时间过长
- bash - Ctrl+C 在 Git Bash 2.20.1 中不能与 gradle 一起使用
- shell - 我无法从其他函数 shell 脚本中的函数获取值