1
所以,我有這樣的代碼如何在Django Admin的自定義方法中獲取當前用戶?
class PostAdmin(models.ModelAdmin):
# ...
def display_confirm_button(self, obj):
# some code
# ...
如何獲得在display_confirm_button方法當前用戶?
所以,我有這樣的代碼如何在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
# ...
要訪問登錄的用戶,您需要訪問請求對象。由於您只能訪問正在編輯的對象obj
,因此無法在您的display_confirm_button
方法中訪問請求。
解決方案是覆蓋get_list_display
,它可以訪問request
對象。然後,您可以在內定義您的display_confirm_button
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', get_list_display, ...]
謝謝,我會試試看。 – react
檢查這個答案http://stackoverflow.com/a/10993961/4117381這https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin .ModelAdmin.save_model –
@AhmedHosny這些鏈接似乎是不相關的;他們正在討論如何使用該請求來保存模型,這完全不是OP所要求的。 –
@AhmedHosny我需要在不保存的情況下獲取用戶 – react