所以,我有这段代码
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/