2016-02-11 38 views
1

所以,我有這樣的代碼如何在Django Admin的自定義方法中獲取當前用戶?

class PostAdmin(models.ModelAdmin): 
    # ... 
    def display_confirm_button(self, obj): 
     # some code 
    # ... 

如何獲得在display_confirm_button方法當前用戶?

+0

檢查這個答案http://stackoverflow.com/a/10993961/4117381這https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin .ModelAdmin.save_model –

+0

@AhmedHosny這些鏈接似乎是不相關的;他們正在討論如何使用該請求來保存模型,這完全不是OP所要求的。 –

+0

@AhmedHosny我需要在不保存的情況下獲取用戶 – react

回答

3
class PostAdmin(models.ModelAdmin): 
    # ... 
    def display_confirm_button(self, obj): 
     # some code 
    # ... 

要訪問登錄的用戶,您需要訪問請求對象。由於您只能訪問正在編輯的對象obj,因此無法在您的display_confirm_button方法中訪問請求。

解決方案是覆蓋get_list_display,它可以訪問request對象。然後,您可以在內定義您的display_confirm_buttonget_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, ...] 
+0

謝謝,我會試試看。 – react

相關問題