rea*_*act 1 python django django-admin
所以,我有这个代码
class PostAdmin(models.ModelAdmin):
# ...
def display_confirm_button(self, obj):
# some code
# ...
Run Code Online (Sandbox Code Playgroud)
如何在display_confirm_button方法中获取当前用户?
class PostAdmin(models.ModelAdmin):
# ...
def display_confirm_button(self, obj):
# some code
# ...
Run Code Online (Sandbox Code Playgroud)
要访问登录用户,您需要访问请求对象.display_confirm_button由于您只能访问obj正在编辑的对象,因此无法在您的方法中访问请求.
解决方案是覆盖get_list_display,它可以访问request对象.然后,您可以display_confirm_button 在其中有权访问请求的内部 get_list_display,并display_confirm_button在您返回的列表中包含callable.
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, ...]
Run Code Online (Sandbox Code Playgroud)