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