2015-05-15 82 views
0

調用記錄到日誌中我有這樣的:如何在用戶的ModelAdmin在Django

class SummaryAdmin(admin.ModelAdmin): 
    list_display = ('date', 'display_user', 'from_till', 'hours_worked', 
        'productivity_status',) 
    list_filter = ['date', 'user_crm'] 

    def display_user(self, obj): 
     test = "unknown" 
     temp = obj.user_crm 

     #if user.has_perm('crm.list_all_customers'): 
     if temp.user: 
      first_name = temp.user.first_name 
      last_name = temp.user.last_name 
      test = "%s %s" % (first_name, last_name) 
     elif temp.alternate: 
      test = "%s " % temp.alternate 
     else: 
      test = "%s (not linked)" % obj.user 

     #return obj.salesperson if obj.salesperson is not None else '' 
     return test 

是有可能得到登錄的用戶,而在display_user功能?

+0

你能不通過調用視圖的方法時登錄的用戶爲這樣的參數:'display_user(OBJ,request.user)' – IanAuld

+0

它被稱爲當試圖將「display_user」作爲一個字段顯示時,通過'list_display' – HellOfACode

回答

1

我認爲您需要使用threadlocals來存儲request對象,因爲它在Django中並不是您需要的地方。

試試這個:
https://github.com/nebstrebor/django-threadlocals

from threadlocals.threadlocals import get_current_user 

class SummaryAdmin(admin.ModelAdmin): 
    list_display = ('date', 'display_user', 'from_till', 'hours_worked', 
        'productivity_status',) 
    list_filter = ['date', 'user_crm'] 

    def display_user(self, obj): 
     current_user = get_current_user() 
     ... 
相關問題